You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _posts/2020-02-03-the-background-webcompat-debacle.markdown
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,9 +28,9 @@ Clicking into the <code><final-bg-layer></code> hyperlink, we discover thi
28
28
{:refdef}
29
29
<divstyle="margin-top: -20px; margin-bottom: 10px; text-align: center; font-style: italic; font-size: .85rem">The <spanstyle="font-style: normal"><code>#</code></span> next to <spanstyle="font-style: italic;"><code><bg-layer></code></span> means "0 or more" non-final background layers</div>
30
30
31
-
This intrigued me. Why do authors expect the color to be first, and why does it make less sense for the color to be first? What does this change mean in practicality? How was this decision to change the specification made?
31
+
This intrigued me. Why do authors expect the color to be first, and why does it make less sense for the color to be first? What does this change mean in practice? How was this decision to change the specification made?
32
32
33
-
Read on for a glimpse into [how the CSS sausage is made](https://en.wiktionary.org/wiki/how_the_sausage_gets_made), from CSS specification to (sometimes differing) browser implementation. You can expect to learn about the CSS standards process, CSS serialization, web platform tests, and more, hopefully gaining some appreciation for the difficult task that web compatibility is.
33
+
Read on for a glimpse into [how the CSS sausage is made](https://en.wiktionary.org/wiki/how_the_sausage_gets_made), from CSS specification to (sometimes differing) browser implementation. You can expect to learn about the CSS standards process, CSS serialization, web platform tests, and more, hopefully gaining some appreciation for the difficult task that is web compatibility.
34
34
35
35
### First, a detour: how CSS comes to be
36
36
@@ -64,7 +64,7 @@ In summary: CSS syntax is standardized by the [CSSWG (CSS working group)](https:
64
64
Candidate recommendation (CR)
65
65
<br />
66
66
<span class="non-bold">
67
-
Browsers typically implement the specification in this phase in order to gain <a href="https://www.w3.org/2018/Process-20180201/#implementation-experience">implementation experience</a>, thus determining the worthiness of this specification for the final phases. We see this phase mentioned in the above screenshot, meaning the change to <code>background</code> serialization we will dive into shortly was an revision to the original CR.
67
+
Browsers typically implement the specification in this phase in order to gain <a href="https://www.w3.org/2018/Process-20180201/#implementation-experience">implementation experience</a>, thus determining the worthiness of this specification for the final phases. We see this phase mentioned in the above screenshot, meaning the change to <code>background</code> serialization we will dive into shortly was a revision to the original CR.
68
68
</span>
69
69
</li>
70
70
<li>
@@ -93,7 +93,7 @@ Before we continue, allow me to clarify some terms you might not be familiar wit
93
93
94
94
In the context of CSS specifications, "authors" are the authors of webpages — web developers. You may also see the terminology "implementor" — these are the people implementing the specification, so browser (which is also known as a _user agent_) developers.
95
95
96
-
Serialization is the process of converting from a data structure (e.g. Rust struct, C++ class) representation of a CSS object to a string representation of that CSS object. To see this more concretely, check out [this portion of the CSSOM (CSS Object Model) spec](https://drafts.csswg.org/cssom/#serializing-css-values) that details how to serialize various CSS values and components. Here's an excerpt showing serialization of a ratio value:
96
+
Serialization is the process of converting from a data structure (e.g. Rust struct, C++ class) representation of a CSS object to a string representation of that CSS object. To see this more concretely, check out [this portion of the CSSOM (CSS Object Model) spec](https://drafts.csswg.org/cssom/#serializing-css-values) that details how to serialize various CSS values and components. Here's an excerpt showing the serialization of a <code><ratio></code> value:
97
97
98
98
{:refdef: style="text-align: center;"}
99
99
<ahref="/assets/img/background_serialization/serialize_ratio_component.png"></a>
@@ -186,7 +186,7 @@ There is a somewhat happy ending to this story, and it comes thanks to something
186
186
187
187
> The web-platform-tests project is a cross-browser test suite for the Web-platform stack. Writing tests in a way that allows them to be run in all browsers gives browser projects confidence that they are shipping software that is compatible with other implementations, and that later implementations will be compatible with their implementations.
188
188
189
-
Most browsers automatically sync these tests to their own repositories, and use them to help prevent any set of changes from accidentally regressing web-compatibility. At the time of this post, there are a whopping 41,492 WPTs, each of which made up of one or more subtests, for a grand total of _1,711,211 subtests_. That's a lot!
189
+
Most browsers automatically sync these tests to their own repositories and use them to help prevent any set of changes from accidentally regressing web-compatibility. At the time of this post, there are a whopping 41,492 WPTs, each of which made up of one or more subtests, for a grand total of _1,711,211 subtests_. That's a lot!
190
190
191
191
The `web-platform-tests` group also maintains a website called [wpt.fyi](https://wpt.fyi/results/?label=experimental&label=master&aligned), which provides a dashboard to view the results of any and all WPTs for the included browsers.
0 commit comments