@@ -352,22 +352,39 @@ it might still be possible; see [[#removing-features]].
|
352 | 352 | |
353 | 353 | Do not assume that a change or removal is impossible without first checking. |
354 | 354 | |
355 | | -<h3 id=removing-features>Remove or change capabilities only once you understand existing usage</h3> |
356 | | - |
357 | | -Prioritize compatibility with existing content when removing or changing functionality. |
358 | | - |
359 | | -Once a significant amount of content has come to depend on a particular behavior, |
360 | | -removing or changing that behavior is discouraged. |
361 | | -Removing or changing features and capabilities is possible, |
362 | | -but it first requires that the nature and scope of the impact on existing content |
363 | | -is well understood. |
364 | | -This might require research into how features are used by existing content. |
365 | | - |
366 | | -The obligation to understand existing usage also applies to any features that content relies upon. |
| 355 | +<h3 id=removing-features>Prioritize compatibility when changing or removing features</h3> |
| 356 | + |
| 357 | +Before changing how a feature behaves, |
| 358 | +understand how websites are currently using it. |
| 359 | + |
| 360 | +Gaining a good understanding might require research, |
| 361 | +for example by adding metrics to a widely-used user agent |
| 362 | +or by [searching the HTTP Archive](https://har.fyi/guides/getting-started/). |
| 363 | +Breaking content harms users, |
| 364 | +and the benefit of a change has to |
| 365 | +significantly outweigh that harm to be worth doing |
| 366 | +[[the-web-is-unversioned]]. |
| 367 | + |
| 368 | +The obligation to understand existing usage |
| 369 | +also applies to non-standardized or unspecified features |
| 370 | +that content relies upon. |
367 | 371 | This includes vendor-proprietary features and |
368 | | -behavior that might be considered implementation bugs. |
369 | | -Web features are not solely defined in specifications; |
370 | | -they are also defined by how content uses those features. |
| 372 | +implementation bugs. |
| 373 | + |
| 374 | +Despite this, it is sometimes acceptable |
| 375 | +to break some existing content |
| 376 | +in order to improve the experience for a large number of web users. |
| 377 | +Breakage is more likely to be acceptable if: |
| 378 | + |
| 379 | +* Only a tiny amount of existing content depend on the feature or behavior. |
| 380 | +* Only a tiny number of people see that content. |
| 381 | +* The content appears only in test cases or examples. |
| 382 | +* The content is already broken in some widely-used user agents, |
| 383 | + and either they have not received many bug reports about it, |
| 384 | + or the change is expected to improve interoperability. |
| 385 | +* The benefit of breaking content is very large. |
| 386 | + For example, removing old SSL and TLS versions caused a number of sites to become unreachable |
| 387 | + but prevents more security breaches. |
371 | 388 | |
372 | 389 | <h3 id="leave-the-web-better">Leave the web better than you found it</h3> |
373 | 390 | |
|