@@ -307,22 +307,42 @@ it might still be possible; see [[#removing-features]].
307
307
308
308
Do not assume that a change or removal is impossible without first checking.
309
309
310
- <h3 id=removing-features>Remove or change capabilities only once you understand existing usage</h3>
311
-
312
- Prioritize compatibility with existing content when removing or changing functionality.
313
-
314
- Once a significant amount of content has come to depend on a particular behavior,
315
- removing or changing that behavior is discouraged.
316
- Removing or changing features and capabilities is possible,
317
- but it first requires that the nature and scope of the impact on existing content
318
- is well understood.
319
- This might require research into how features are used by existing content.
320
-
321
- The obligation to understand existing usage also applies to any features that content relies upon.
310
+ <h3 id=removing-features>Prioritize compatibility when changing or removing features</h3>
311
+
312
+ Before changing how a feature behaves,
313
+ fully understand how websites are currently using it.
314
+ This might require research,
315
+ for example by adding metrics to a popular user agent
316
+ and/or by [searching the HTTP Archive] (https://har.fyi/guides/getting-started/).
317
+ Breaking content is harmful,
318
+ and the benefit of a change has to
319
+ significantly outweigh that harm to be worth doing.
320
+
321
+ The obligation to understand existing usage
322
+ also applies to non-standardized or unspecified features
323
+ that content relies upon.
322
324
This includes vendor-proprietary features and
323
- behavior that might be considered implementation bugs.
324
- Web features are not solely defined in specifications;
325
- they are also defined by how content uses those features.
325
+ implementation bugs.
326
+
327
+ Despite this, it is sometimes acceptable
328
+ to break some existing content
329
+ in order to help a large number of the web's users.
330
+ Breakage is more likely to be acceptable if:
331
+
332
+ * Only a tiny amount of existing content depend on the feature or behavior.
333
+ * Only a tiny number of people see that content.
334
+ * The content only appears in test cases or examples.
335
+ * The content is currently broken in most recent popular user agents.
336
+ * The content is not on the public web,
337
+ but is instead found on internal sites
338
+ with a controlled user environment.
339
+ Beware in this case that internal sites are
340
+ often invisible to our analysis tools.
341
+ Getting a single complaint is often a sign
342
+ of a much larger amount of hidden breakage.
343
+ * The benefit of breaking content is very large.
344
+ For example, removing old SSL and TLS versions breaks lots of content
345
+ but prevents even more security breaches.
326
346
327
347
<h3 id="leave-the-web-better">Leave the web better than you found it</h3>
328
348
0 commit comments