Skip to content

Commit 62fc770

Browse files
jyasskinmartinthomsoncsarven
authored
Rewrite the "removing features" section, incorporating "Support Existing Content" from the HTTP Design Principles (#588)
* Rewrite the "removing features" section, incorporating "Support Existing Content" from the HTTP Design Principles * Fix indentation. * Apply changes from discussion Co-authored-by: Martin Thomson <[email protected]> * Say who breakage harms. * Cite the-web-is-unversioned. * Make the first paragraph a single sentence. Co-authored-by: Martin Thomson <[email protected]> * s/help/improve experience/ Co-authored-by: Martin Thomson <[email protected]> * s/currently/already/ Co-authored-by: Sarven Capadisli <[email protected]> * s/popular/widely-used/ * Swap "only appears" Co-authored-by: Sarven Capadisli <[email protected]> * Shorten the hidden breakage text. Co-authored-by: Sarven Capadisli <[email protected]> * Non-public breakage seems to block removal, in practice. * Elaborate on how existing breakage indicates that changes might be acceptable. * Remove local biblio now that it's in specref. * "even more" -> "more" * Remove the value judgement about the amount of breakage from removing old SSL versions.. Co-authored-by: Martin Thomson <[email protected]> --------- Co-authored-by: Martin Thomson <[email protected]> Co-authored-by: Sarven Capadisli <[email protected]>
1 parent 5b9b53c commit 62fc770

File tree

1 file changed

+32
-15
lines changed

1 file changed

+32
-15
lines changed

index.bs

Lines changed: 32 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -352,22 +352,39 @@ it might still be possible; see [[#removing-features]].
352352

353353
Do not assume that a change or removal is impossible without first checking.
354354

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.
367371
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.
371388

372389
<h3 id="leave-the-web-better">Leave the web better than you found it</h3>
373390

0 commit comments

Comments
 (0)