|
7 | 7 | <link href="https://www.w3.org/StyleSheets/TR/2021/W3C-ED" rel="stylesheet">
|
8 | 8 | <meta content="Bikeshed version 4416b18d5, updated Tue Jan 2 15:52:39 2024 -0800" name="generator">
|
9 | 9 | <link href="https://www.w3.org/TR/design-principles/" rel="canonical">
|
10 |
| - <meta content="918cef0cbe142f623cdeb57ffed4ef3d03800a4f" name="revision"> |
| 10 | + <meta content="c8a5914bf8cf58f88f652ef9c02fddea4945184c" name="revision"> |
11 | 11 | <style>
|
12 | 12 | table.data {
|
13 | 13 | text-align: left;
|
@@ -760,7 +760,9 @@ <h2 class="no-num no-toc no-ref" id="contents">Table of Contents</h2>
|
760 | 760 | <li><a href="#trusted-ui"><span class="secno">1.3</span> <span class="content">Trusted user interface should be trustworthy</span></a>
|
761 | 761 | <li><a href="#consent"><span class="secno">1.4</span> <span class="content">Ask users for meaningful consent</span></a>
|
762 | 762 | <li><a href="#devices-platforms"><span class="secno">1.5</span> <span class="content">Support the full range of devices and platforms (Media Independence)</span></a>
|
763 |
| - <li><a href="#leave-the-web-better"><span class="secno">1.6</span> <span class="content">Leave the web better than you found it</span></a> |
| 763 | + <li><a href="#new-features"><span class="secno">1.6</span> <span class="content">Add new capabilities with care</span></a> |
| 764 | + <li><a href="#removing-features"><span class="secno">1.7</span> <span class="content">Remove or change capabilities only once you understand existing usage</span></a> |
| 765 | + <li><a href="#leave-the-web-better"><span class="secno">1.8</span> <span class="content">Leave the web better than you found it</span></a> |
764 | 766 | </ol>
|
765 | 767 | <li>
|
766 | 768 | <a href="#api-across-languages"><span class="secno">2</span> <span class="content">API Design Across Languages</span></a>
|
@@ -1082,7 +1084,32 @@ <h3 class="heading settled" data-level="1.5" id="devices-platforms"><span class=
|
1082 | 1084 | In these cases, features should be designed such that it is possible for
|
1083 | 1085 | code to gracefully fail or be polyfilled.
|
1084 | 1086 | See <a href="#feature-detect">§ 2.5 New features should be detectable</a>.</p>
|
1085 |
| - <h3 class="heading settled" data-level="1.6" id="leave-the-web-better"><span class="secno">1.6. </span><span class="content">Leave the web better than you found it</span><a class="self-link" href="#leave-the-web-better"></a></h3> |
| 1087 | + <h3 class="heading settled" data-level="1.6" id="new-features"><span class="secno">1.6. </span><span class="content">Add new capabilities with care</span><a class="self-link" href="#new-features"></a></h3> |
| 1088 | + <p>Add new capabilities to the web with consideration of existing functionality and content.</p> |
| 1089 | + <p>The Web includes many extension points that allow for additions; |
| 1090 | +see for example <a href="https://html.spec.whatwg.org/multipage/introduction.html#extensibility"><cite>HTML</cite> § 1.7.3 Extensibility</a>.</p> |
| 1091 | + <p>Before adding items, consider integration with existing, similar capabilities. |
| 1092 | +If this leads to a preferred design approach that cannot be implemented by only adding items, |
| 1093 | +it might still be possible; see <a href="#removing-features">§ 1.7 Remove or change capabilities only once you understand existing usage</a>.</p> |
| 1094 | + <p>Do not assume that a change or removal is impossible without first checking. |
| 1095 | +Before adding items, consider integration with existing, similar capabilities. |
| 1096 | +If this leads to a preferred design approach that cannot be implemented by only adding items, |
| 1097 | +it might still be possible; see <a href="#removing-features">§ 1.7 Remove or change capabilities only once you understand existing usage</a>. |
| 1098 | +Do not assume that a change or removal is impossible without first checking.</p> |
| 1099 | + <h3 class="heading settled" data-level="1.7" id="removing-features"><span class="secno">1.7. </span><span class="content">Remove or change capabilities only once you understand existing usage</span><a class="self-link" href="#removing-features"></a></h3> |
| 1100 | + <p>Prioritize compatibility with existing content when removing or changing functionality.</p> |
| 1101 | + <p>Once a significant amount of content has come to depend on a particular behavior, |
| 1102 | +removing or changing that behavior is discouraged. |
| 1103 | +Removing or changing features and capabilities is possible, |
| 1104 | +but it first requires that the nature and scope of the impact on existing content |
| 1105 | +is well understood. |
| 1106 | +This might require research into how features are used by existing content.</p> |
| 1107 | + <p>The obligation to understand existing usage also applies to any features that content relies upon. |
| 1108 | +This includes vendor-proprietary features and |
| 1109 | +behavior that might be considered implementation bugs. |
| 1110 | +Web features are not solely defined in specifications; |
| 1111 | +they are also defined by how content uses those features.</p> |
| 1112 | + <h3 class="heading settled" data-level="1.8" id="leave-the-web-better"><span class="secno">1.8. </span><span class="content">Leave the web better than you found it</span><a class="self-link" href="#leave-the-web-better"></a></h3> |
1086 | 1113 | <p>As you add new capabilities to the web platform, do so in a way that improves
|
1087 | 1114 | the overall platform, for example its security or privacy vulnerabilities, or accessibility characteristics.
|
1088 | 1115 | The existence of a defect in one part of the platform must not be used as a license
|
|
0 commit comments