- From: poot <cvsmail@w3.org>
- Date: Tue, 26 May 2009 16:36:48 +0900 (JST)
- To: public-html-diffs@w3.org
Made sure that examples are clearly marked as such. Cleaned up some
examples. Added disclaimer that examples are not final decisions about
HTML, necessarily.
Diffs for this change per section:
http://people.w3.org/mike/diffs/html5/html-design-principles/Overview.1.24.html#avoid-needless-complexity
http://people.w3.org/mike/diffs/html5/html-design-principles/Overview.1.24.html#universal-access
http://people.w3.org/mike/diffs/html5/html-design-principles/Overview.1.24.html#pave-the-cowpaths
http://people.w3.org/mike/diffs/html5/html-design-principles/Overview.1.24.html#support-world-languages
http://people.w3.org/mike/diffs/html5/html-design-principles/Overview.1.24.html#evolution-not-revolution
http://people.w3.org/mike/diffs/html5/html-design-principles/Overview.1.24.html#media-independence
http://people.w3.org/mike/diffs/html5/html-design-principles/Overview.1.24.html#examples
http://people.w3.org/mike/diffs/html5/html-design-principles/Overview.1.24.html#secure-by-design
http://people.w3.org/mike/diffs/html5/html-design-principles/Overview.1.24.html#handle-errors
http://people.w3.org/mike/diffs/html5/html-design-principles/Overview.1.24.html#html-design-principles
http://people.w3.org/mike/diffs/html5/html-design-principles/Overview.1.24.html#utility
http://people.w3.org/mike/diffs/html5/html-design-principles/Overview.1.24.html#degrade-gracefully
http://people.w3.org/mike/diffs/html5/html-design-principles/Overview.1.24.html#introduction
http://people.w3.org/mike/diffs/html5/html-design-principles/Overview.1.24.html#priority-of-constituencies
http://people.w3.org/mike/diffs/html5/html-design-principles/Overview.1.24.html#toc
http://people.w3.org/mike/diffs/html5/html-design-principles/Overview.1.24.html#conformance
http://people.w3.org/mike/diffs/html5/html-design-principles/Overview.1.24.html#support-existing-content
http://people.w3.org/mike/diffs/html5/html-design-principles/Overview.1.24.html#well-defined-behavior
http://people.w3.org/mike/diffs/html5/html-design-principles/Overview.1.24.html#accessibility
http://people.w3.org/mike/diffs/html5/html-design-principles/Overview.1.24.html#w3c-doctype
http://people.w3.org/mike/diffs/html5/html-design-principles/Overview.1.24.html#interoperability
http://people.w3.org/mike/diffs/html5/html-design-principles/Overview.1.24.html#solve-real-problems
http://people.w3.org/mike/diffs/html5/html-design-principles/Overview.1.24.html#compatibility
http://people.w3.org/mike/diffs/html5/html-design-principles/Overview.1.24.html#do-not-reinvent-the-wheel
http://people.w3.org/mike/diffs/html5/html-design-principles/Overview.1.24.html#dom-consistency
http://people.w3.org/mike/diffs/html5/html-design-principles/Overview.1.24.html#separation-of-concerns
http://people.w3.org/mike/diffs/html5/html-design-principles/Overview.diff.html
http://dev.w3.org/cvsweb/html5/html-design-principles/Overview.html?r1=1.23&r2=1.24&f=h
===================================================================
RCS file: /sources/public/html5/html-design-principles/Overview.html,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- Overview.html 24 Nov 2007 00:40:26 -0000 1.23
+++ Overview.html 26 May 2009 07:36:24 -0000 1.24
@@ -6,6 +6,7 @@
<style type="text/css">
.example { padding-left: 1em; border-left: 3px solid green }
+ .example:before { content: "Example: "; font-weight: bold; }
.note { font-style: italic; }
dfn { font-style:normal; font-weight:bold }
code { color:orangered }
@@ -21,8 +22,7 @@
<h1 id=html-design-principles>HTML Design Principles</h1>
- <h2 class="no-num no-toc" id=w3c-doctype>W3C Working Draft 26 November
- 2007</h2>
+ <h2 class="no-num no-toc" id=w3c-doctype>W3C Working Draft 26 May 2009</h2>
<dl>
<dt>This Version:</dt>
@@ -31,7 +31,7 @@
log</a>)</dd>-->
<dd><a
- href="http://www.w3.org/TR/2007/WD-html-design-principles-20071126/">http://www.w3.org/TR/2007/WD-html-design-principles-20071126/</a>
+ href="http://www.w3.org/TR/2009/WD-html-design-principles-20090526/">http://www.w3.org/TR/2009/WD-html-design-principles-20090526/</a>
<dt>Latest Version:</dt>
<!--<dd><a href="http://www.w3.org/html/wg/html5/principles/">http://www.w3.org/html/wg/html5/principles/</a></li>-->
@@ -136,78 +136,74 @@
<!--begin-toc-->
<ul class=toc>
- <li><a href="#introduction"><span class=secno>1. </span>Introduction</a>
+ <li><a href="#introduction"><span class=secno>1 </span>Introduction</a>
<ul class=toc>
- <li><a href="#conformance"><span class=secno>1.1. </span>Conformance for
+ <li><a href="#conformance"><span class=secno>1.1 </span>Conformance for
Documents and Implementations</a>
+
+ <li><a href="#examples"><span class=secno>1.2 </span>Examples in this
+ Document</a>
</ul>
- <li><a href="#compatibility"><span class=secno>2. </span>Compatibility</a>
-
+ <li><a href="#compatibility"><span class=secno>2 </span>Compatibility</a>
<ul class=toc>
- <li><a href="#support-existing-content"><span class=secno>2.1.
+ <li><a href="#support-existing-content"><span class=secno>2.1
</span>Support Existing Content</a>
- <ul class=toc>
- <li><a href="#examples"><span class=secno>2.1.1. </span>Examples</a>
- </ul>
- <li><a href="#degrade-gracefully"><span class=secno>2.2. </span>Degrade
+ <li><a href="#degrade-gracefully"><span class=secno>2.2 </span>Degrade
Gracefully</a>
- <ul class=toc>
- <li><a href="#examples0"><span class=secno>2.2.1. </span>Examples</a>
- </ul>
- <li><a href="#do-not-reinvent-the-wheel"><span class=secno>2.3.
- </span>Do not Reinvent the Wheel</a>
+ <li><a href="#do-not-reinvent-the-wheel"><span class=secno>2.3 </span>Do
+ not Reinvent the Wheel</a>
- <li><a href="#pave-the-cowpaths"><span class=secno>2.4. </span>Pave the
+ <li><a href="#pave-the-cowpaths"><span class=secno>2.4 </span>Pave the
Cowpaths</a>
- <li><a href="#evolution-not-revolution"><span class=secno>2.5.
+ <li><a href="#evolution-not-revolution"><span class=secno>2.5
</span>Evolution Not Revolution</a>
</ul>
- <li><a href="#utility"><span class=secno>3. </span>Utility</a>
+ <li><a href="#utility"><span class=secno>3 </span>Utility</a>
<ul class=toc>
- <li><a href="#solve-real-problems"><span class=secno>3.1. </span>Solve
+ <li><a href="#solve-real-problems"><span class=secno>3.1 </span>Solve
Real Problems</a>
- <li><a href="#priority-of-constituencies"><span class=secno>3.2.
+ <li><a href="#priority-of-constituencies"><span class=secno>3.2
</span>Priority of Constituencies</a>
- <li><a href="#secure-by-design"><span class=secno>3.3. </span>Secure By
+ <li><a href="#secure-by-design"><span class=secno>3.3 </span>Secure By
Design</a>
- <li><a href="#separation-of-concerns"><span class=secno>3.4.
+ <li><a href="#separation-of-concerns"><span class=secno>3.4
</span>Separation of Concerns</a>
- <li><a href="#dom-consistency"><span class=secno>3.5. </span>DOM
+ <li><a href="#dom-consistency"><span class=secno>3.5 </span>DOM
Consistency</a>
</ul>
- <li><a href="#interoperability"><span class=secno>4.
+ <li><a href="#interoperability"><span class=secno>4
</span>Interoperability</a>
<ul class=toc>
- <li><a href="#well-defined-behavior"><span class=secno>4.1.
+ <li><a href="#well-defined-behavior"><span class=secno>4.1
</span>Well-defined Behavior</a>
- <li><a href="#avoid-needless-complexity"><span class=secno>4.2.
+ <li><a href="#avoid-needless-complexity"><span class=secno>4.2
</span>Avoid Needless Complexity</a>
- <li><a href="#handle-errors"><span class=secno>4.3. </span>Handle
+ <li><a href="#handle-errors"><span class=secno>4.3 </span>Handle
Errors</a>
</ul>
- <li><a href="#universal-access"><span class=secno>5. </span>Universal
+ <li><a href="#universal-access"><span class=secno>5 </span>Universal
Access</a>
<ul class=toc>
- <li><a href="#media-independence"><span class=secno>5.1. </span>Media
+ <li><a href="#media-independence"><span class=secno>5.1 </span>Media
Independence</a>
- <li><a href="#support-world-languages"><span class=secno>5.2.
+ <li><a href="#support-world-languages"><span class=secno>5.2
</span>Support World Languages</a>
- <li><a href="#accessibility"><span class=secno>5.3.
+ <li><a href="#accessibility"><span class=secno>5.3
</span>Accessibility</a>
</ul>
@@ -215,7 +211,7 @@
</ul>
<!--end-toc-->
- <h2 id=introduction><span class=secno>1. </span>Introduction</h2>
+ <h2 id=introduction><span class=secno>1 </span>Introduction</h2>
<p>In the HTML Working Group, we have representatives from many different
communities, including the WHATWG and other W3C Working Groups. The
@@ -230,7 +226,7 @@
findings in Architecture of the World Wide Web, but specific to the
deliverables of this group.
- <h3 id=conformance><span class=secno>1.1. </span>Conformance for Documents
+ <h3 id=conformance><span class=secno>1.1 </span>Conformance for Documents
and Implementations</h3>
<p>Many language specifications define a set of conformance requirements
@@ -252,14 +248,20 @@
principles will do their best to make clear which set of requirements they
apply to.
- <h2 id=compatibility><span class=secno>2. </span>Compatibility</h2>
+ <h3 id=examples><span class=secno>1.2 </span>Examples in this Document</h3>
+
+ <p>Many of the principles are illustrated with examples of cases where they
+ have been applied. None of them should be taken as indicating a final
+ decision on any given HTML5 feature.
+
+ <h2 id=compatibility><span class=secno>2 </span>Compatibility</h2>
<p>There are many ways of interpreting compatibility. Sometimes the terms
"backwards compatibility" and "forwards compatibility" are used, but
sometimes the meaning of those terms can be unclear. The principles in
this section address different facets of compatibility.
- <h3 id=support-existing-content><span class=secno>2.1. </span>Support
+ <h3 id=support-existing-content><span class=secno>2.1 </span>Support
Existing Content</h3>
<p class=note>This principle applies primarily to the supported language.
@@ -309,8 +311,6 @@
that something is part of the supported language does not by itself mean
that relying on it is condoned or encouraged.
- <h4 id=examples><span class=secno>2.1.1. </span>Examples</h4>
-
<p class=example>Many sites use broken markup, such as badly nested
elements (<code><b>a<i>b</b>c</i></code>), and both authors
and users have expectations based on the error handling used by legacy
@@ -320,7 +320,7 @@
<p class=example>Some sites rely on the <code><u></code> element
giving the presentational effect of an underline.
- <h3 id=degrade-gracefully><span class=secno>2.2. </span>Degrade Gracefully</h3>
+ <h3 id=degrade-gracefully><span class=secno>2.2 </span>Degrade Gracefully</h3>
<p class=note>This principle applies primarily to the conforming language.
@@ -375,9 +375,7 @@
</ul>
<p>This list is not exhaustive; in some cases slightly more complicated
- approaches are more effective.
-
- <h4 id=examples0><span class=secno>2.2.1. </span>Examples</h4>
+ approaches are more effective.</p>
<!--
<p class="example">The default presentation of the
proposed <code><section></code> element can be emulated
@@ -385,8 +383,8 @@
-->
<p class=example>The default presentation of the proposed
- <code>irrelevant</code> attribute can be emulated through the CSS rule
- <code>[irrelevant] { display: none; }</code>.
+ <code>hidden</code> attribute can be emulated through the CSS rule
+ <code>[hidden] { display: none; }</code>.
<p class=example>Proposed new multimedia elements like <code><canvas>
fallback </canvas></code> or <code><video> fallback
@@ -405,7 +403,7 @@
"combo box" control can be a text field or a text field with an associated
pop-up menu in existing mainstream browsers
- <h3 id=do-not-reinvent-the-wheel><span class=secno>2.3. </span>Do not
+ <h3 id=do-not-reinvent-the-wheel><span class=secno>2.3 </span>Do not
Reinvent the Wheel</h3>
<p>If there is already a widely used and implemented technology covering
@@ -417,7 +415,7 @@
<p class=example><code>contenteditable=""</code> was already used and
implemented by user agents. No need to invent a new feature.
- <h3 id=pave-the-cowpaths><span class=secno>2.4. </span>Pave the Cowpaths</h3>
+ <h3 id=pave-the-cowpaths><span class=secno>2.4 </span>Pave the Cowpaths</h3>
<p>When a practice is already widespread among authors, consider adopting
it rather than forbidding it or inventing something new.
@@ -426,7 +424,7 @@
opposed to <code><br></code> in HTML and there is no harm done by
allowing that to be used.
- <h3 id=evolution-not-revolution><span class=secno>2.5. </span>Evolution Not
+ <h3 id=evolution-not-revolution><span class=secno>2.5 </span>Evolution Not
Revolution</h3>
<p>Revolutions sometimes change the world to the better. Most often,
@@ -441,20 +439,19 @@
<p class=example>Switching to XML syntax requires a global change, so
continue supporting classic HTML syntax as well.
- <h2 id=utility><span class=secno>3. </span>Utility</h2>
+ <h2 id=utility><span class=secno>3 </span>Utility</h2>
<p>These principles call for a design that makes sure HTML can be used
effectively for its many intended purposes.
- <h3 id=solve-real-problems><span class=secno>3.1. </span>Solve Real
- Problems</h3>
+ <h3 id=solve-real-problems><span class=secno>3.1 </span>Solve Real Problems</h3>
<p>Changes to the spec should solve actual real-world problems. Abstract
architectures that don't address an existing need are less favored than
pragmatic solutions to problems that web content faces today. And existing
widespread problems should be solved, when possible.
- <h3 id=priority-of-constituencies><span class=secno>3.2. </span>Priority of
+ <h3 id=priority-of-constituencies><span class=secno>3.2 </span>Priority of
Constituencies</h3>
<p>In case of conflict, consider users over authors over implementors over
@@ -466,7 +463,7 @@
reasons alone. Of course, it is preferred to make things better for
multiple constituencies at once.
- <h3 id=secure-by-design><span class=secno>3.3. </span>Secure By Design</h3>
+ <h3 id=secure-by-design><span class=secno>3.3 </span>Secure By Design</h3>
<p>Ensure that features work with the security model of the web.
Preferrably address security considerations directly in the specification.
@@ -476,7 +473,7 @@
Cross-document messaging is designed to allow this without violating
security constraints.
- <h3 id=separation-of-concerns><span class=secno>3.4. </span>Separation of
+ <h3 id=separation-of-concerns><span class=secno>3.4 </span>Separation of
Concerns</h3>
<p>HTML should allow separation of content and presentation. For this
@@ -490,17 +487,17 @@
may be pragmatic (for brevity, history, simplicity) rather than completely
accurate.
- <p class=example>The <code>article</code> element defines an individual
- article, but not the details of how it is displayed. A journal article may
- be the only article on a page, formatted in multiple columns, while a blog
- post may share a page with multiple other articles and be presented in a
- box with a border.
+ <p class=example>The <code><article></code> element defines an
+ individual article, but not the details of how it is displayed. A journal
+ article may be the only article on a page, formatted in multiple columns,
+ while a blog post may share a page with multiple other articles and be
+ presented in a box with a border.
- <p class=example>The <code>b</code> and <code>i</code> elements are widely
- used — it is better to give them good default rendering for various
- media including aural than to try to ban them.
+ <p class=example>The <code><b></code> and <code><i></code> elements
+ are widely used — it may be better to give them good default
+ rendering for various media including aural than to try to ban them.
- <h3 id=dom-consistency><span class=secno>3.5. </span>DOM Consistency</h3>
+ <h3 id=dom-consistency><span class=secno>3.5 </span>DOM Consistency</h3>
<p>The two serializations should be designed in such a way that the DOM
trees produced by the respective parsers appear as consistently as
@@ -516,12 +513,12 @@
the <code>http://www.w3.org/1999/xhtml</code> namespace in the DOM for
compatibility with the XML syntax of HTML 5.
- <h2 id=interoperability><span class=secno>4. </span>Interoperability</h2>
+ <h2 id=interoperability><span class=secno>4 </span>Interoperability</h2>
<p>These principles exist to improve the chances of HTML implementations
being truly interoperable.
- <h3 id=well-defined-behavior><span class=secno>4.1. </span>Well-defined
+ <h3 id=well-defined-behavior><span class=secno>4.1 </span>Well-defined
Behavior</h3>
<p>Prefer to clearly define behavior that content authors could rely on, in
@@ -530,7 +527,7 @@
implementations should still be free to make improvements in areas such as
user interface and quality of rendering.
- <h3 id=avoid-needless-complexity><span class=secno>4.2. </span>Avoid
+ <h3 id=avoid-needless-complexity><span class=secno>4.2 </span>Avoid
Needless Complexity</h3>
<p>Simple solutions are preferred to complex ones, when possible. Simpler
@@ -538,18 +535,18 @@
interoperable, and easier for authors to understand. But this should not
be used as an excuse to avoid satisfying the other principles.
- <h3 id=handle-errors><span class=secno>4.3. </span>Handle Errors</h3>
+ <h3 id=handle-errors><span class=secno>4.3 </span>Handle Errors</h3>
<p>Error handling should be defined so that interoperable implementations
can be achieved. Prefer graceful error recovery to hard failure, so that
users are not exposed to authoring errors.
- <h2 id=universal-access><span class=secno>5. </span>Universal Access</h2>
+ <h2 id=universal-access><span class=secno>5 </span>Universal Access</h2>
<p>Features should be designed for universal access. This category covers
various principles related to that.
- <h3 id=media-independence><span class=secno>5.1. </span>Media Independence</h3>
+ <h3 id=media-independence><span class=secno>5.1 </span>Media Independence</h3>
<p>Features should, when possible, work across different platforms,
devices, and media. This should not be taken to mean that a feature should
@@ -564,7 +561,7 @@
<p class=example>A hyperlink can not be actuated in a printed document, but
that is no reason to omit the <code>a</code> element.
- <h3 id=support-world-languages><span class=secno>5.2. </span>Support World
+ <h3 id=support-world-languages><span class=secno>5.2 </span>Support World
Languages</h3>
<p>Enable publication in all world languages. But this should not be taken
@@ -581,22 +578,22 @@
<p class=example>Text in element content has better language support than
text in attribute content; in element content ruby annotations can be
- inserted, as well as <code>dir</code> attributes and <code>bdo</code>
- elements in case the Unicode bidirectional algorithm is insufficient to
- correctly order adjacent runs of mixed direction text.
+ inserted, as well as <code><dir></code> attributes and
+ <code><bdo></code> elements in case the Unicode bidirectional algorithm
+ is insufficient to correctly order adjacent runs of mixed direction text.
- <h3 id=accessibility><span class=secno>5.3. </span>Accessibility</h3>
+ <h3 id=accessibility><span class=secno>5.3 </span>Accessibility</h3>
<p>Design features to be accessible to users with disabilities. Access by
everyone regardless of ability is essential. This does not mean that
features should be omitted entirely if not all users can make full use of
them, but alternate mechanisms should be provided.
- <p class=example>The image in an <code>img</code> may not be visible to
- blind users, but that is a reason to provide alternate text, not to leave
- out images.
+ <p class=example>The image in an <code><img></code> may not be visible
+ to blind users, but that is a reason to provide alternate text, not to
+ leave out images.
- <p class=example>The <code>progress</code> element is intrinsically
+ <p class=example>The <code><progress></code> element is intrinsically
accessible as it has unambiguous progress bar semantics which permits
mapping to accessibility APIs that can represent progress indicators.
Index: Overview.src.html
===================================================================
RCS file: /sources/public/html5/html-design-principles/Overview.src.html,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- Overview.src.html 24 Nov 2007 00:40:26 -0000 1.23
+++ Overview.src.html 26 May 2009 07:36:24 -0000 1.24
@@ -4,6 +4,7 @@
<title>HTML Design Principles</title>
<style type="text/css">
.example { padding-left: 1em; border-left: 3px solid green }
+ .example:before { content: "Example: "; font-weight: bold; }
.note { font-style: italic; }
dfn { font-style:normal; font-weight:bold }
code { color:orangered }
@@ -164,6 +165,12 @@
considerable overlap, but the principles will do their best to
make clear which set of requirements they apply to.</p>
+ <h3 id="examples">Examples in this Document</h3>
+
+ <p>Many of the principles are illustrated with examples of cases
+ where they have been applied. None of them should be taken as
+ indicating a final decision on any given HTML5 feature.</p>
+
<h2 id="compatibility">Compatibility</h2>
@@ -227,8 +234,6 @@
part of the supported language does not by itself mean that
relying on it is condoned or encouraged.</p>
- <h4>Examples</h4>
-
<p class="example">Many sites use broken markup, such as badly nested
elements (<code><b>a<i>b</b>c</i></code>), and both authors and
users have expectations based on the error handling used by legacy user
@@ -293,8 +298,6 @@
<p>This list is not exhaustive; in some cases slightly more
complicated approaches are more effective.</p>
- <h4>Examples</h4>
-
<!--
<p class="example">The default presentation of the
proposed <code><section></code> element can be emulated
@@ -302,8 +305,8 @@
-->
<p class="example">The default presentation of the
- proposed <code>irrelevant</code> attribute can be emulated
- through the CSS rule <code>[irrelevant] { display: none; }</code>.</p>
+ proposed <code>hidden</code> attribute can be emulated
+ through the CSS rule <code>[hidden] { display: none; }</code>.</p>
<p class="example">Proposed new multimedia elements
like <code><canvas> fallback </canvas></code>
@@ -405,14 +408,14 @@
pragmatic (for brevity, history, simplicity) rather than completely
accurate.</p>
- <p class="example">The <code>article</code> element defines an individual
+ <p class="example">The <code><article></code> element defines an individual
article, but not the details of how it is displayed. A journal article may
be the only article on a page, formatted in multiple columns, while a blog
post may share a page with multiple other articles and be presented in a box
with a border.</p>
- <p class="example">The <code>b</code> and <code>i</code> elements are widely
- used — it is better to give them good default rendering for various
+ <p class="example">The <code><b></code> and <code><i></code> elements are widely
+ used — it may be better to give them good default rendering for various
media including aural than to try to ban them.</p>
@@ -499,7 +502,7 @@
<p class="example">Text in element content has better language support than
text in attribute content; in element content ruby annotations can be
- inserted, as well as <code>dir</code> attributes and <code>bdo</code>
+ inserted, as well as <code><dir></code> attributes and <code><bdo></code>
elements in case the Unicode bidirectional algorithm is insufficient to
correctly order adjacent runs of mixed direction text.</p>
@@ -511,11 +514,11 @@
features should be omitted entirely if not all users can make full use
of them, but alternate mechanisms should be provided.</p>
- <p class="example">The image in an <code>img</code> may not be visible to
+ <p class="example">The image in an <code><img></code> may not be visible to
blind users, but that is a reason to provide alternate text, not to leave
out images.</p>
- <p class="example">The <code>progress</code> element is intrinsically
+ <p class="example">The <code><progress></code> element is intrinsically
accessible as it has unambiguous progress bar semantics which permits
mapping to accessibility APIs that can represent progress
indicators.</p>
Received on Tuesday, 26 May 2009 07:37:25 UTC