- From: Ian Hickson via cvs-syncmail <cvsmail@w3.org>
- Date: Tue, 09 Nov 2010 00:58:10 +0000
- To: public-html-commits@w3.org
Update of /sources/public/html5/spec
In directory hutz:/tmp/cvs-serv24330
Modified Files:
Overview.html
Log Message:
Revamp how dir='' is implemented; add dir=auto; update to recent CSS developments. (whatwg r5672)
Index: Overview.html
===================================================================
RCS file: /sources/public/html5/spec/Overview.html,v
retrieving revision 1.4538
retrieving revision 1.4539
diff -u -d -r1.4538 -r1.4539
--- Overview.html 5 Nov 2010 20:10:56 -0000 1.4538
+++ Overview.html 9 Nov 2010 00:58:06 -0000 1.4539
@@ -8451,35 +8451,119 @@
use the <code title="attr-xml-base"><a href="#the-xml:base-attribute-xml-only">xml:base</a></code> attribute in
<a href="#html-documents">HTML documents</a>.<h5 id="the-dir-attribute"><span class="secno">3.2.3.5 </span>The <dfn title="attr-dir"><code>dir</code></dfn> attribute</h5><p>The <code title="attr-dir"><a href="#the-dir-attribute">dir</a></code> attribute specifies the
element's text directionality. The attribute is an <a href="#enumerated-attribute">enumerated
- attribute</a> with the keyword <code title="">ltr</code> mapping
- to the state <i>ltr</i>, and the keyword <code title="">rtl</code>
- mapping to the state <i>rtl</i>. The attribute has no <i>invalid
- value default</i> and no <i>missing value default</i>.<div class="impl">
+ attribute</a> with the following keywords and states:<dl><dt>The <dfn id="attr-dir-ltr" title="attr-dir-ltr"><code>ltr</code></dfn> keyword, which maps to the <dfn id="attr-dir-ltr-state" title="attr-dir-ltr-state">ltr</dfn> state</dt>
- <p>The processing of this attribute is primarily performed by the
- presentation layer. For example, the rendering section in this
- specification defines a mapping from this attribute to the CSS
- 'direction' and 'unicode-bidi' properties, and CSS defines rendering
- in terms of those properties.</p>
+ <dd>
- </div><p><dfn id="the-directionality">The directionality</dfn> of an element, which is used in
- particular by the <code><a href="#the-canvas-element">canvas</a></code> element's text rendering API,
- is either 'ltr' or 'rtl'. If the user agent supports CSS and the
- 'direction' property on this element has a computed value of either
- 'ltr' or 'rtl', then that is <a href="#the-directionality">the directionality</a> of the
- element. Otherwise, if the element is <a href="#being-rendered">being rendered</a>,
- then <a href="#the-directionality">the directionality</a> of the element is the
- directionality used by the presentation layer, potentially
- determined from the value of the <code title="attr-dir"><a href="#the-dir-attribute">dir</a></code>
- attribute on the element. Otherwise, if the element's <code title="attr-dir"><a href="#the-dir-attribute">dir</a></code> attribute has the state <i>ltr</i>, the
- element's directionality is 'ltr' (left-to-right); if the attribute
- has the state <i>rtl</i>, the element's directionality is 'rtl'
- (right-to-left); and otherwise, the element's directionality is the
- same as its parent element, or 'ltr' if there is no parent
- element.<hr><dl class="domintro"><dt><var title="">document</var> . <code title="dom-dir"><a href="#dom-dir">dir</a></code> [ = <var title="">value</var> ]</dt>
+ <p>Indicates that the contents of the element are explicitly
+ directionally embedded left-to-right text.</p>
+
+ </dd>
+
+ <dt>The <dfn id="attr-dir-rtl" title="attr-dir-rtl"><code>rtl</code></dfn> keyword, which maps to the <dfn id="attr-dir-rtl-state" title="attr-dir-rtl-state">rtl</dfn> state</dt>
+
+ <dd>
+
+ <p>Indicates that the contents of the element are explicitly
+ directionally embedded right-to-left text.</p>
+
+ </dd>
+
+ <dt>The <dfn id="attr-dir-auto" title="attr-dir-auto"><code>auto</code></dfn> keyword, which maps to the <dfn id="attr-dir-auto-state" title="attr-dir-auto-state">auto</dfn> state</dt>
+
+ <dd>
+
+ <p>Indicates that the contents of the element are explicitly
+ embedded text, but that the direction is to be determined
+ programmatically using the contents of the element (as described
+ below).</p>
+
+ <p class="note">The heuristic used by this state is very crude (it
+ just looks at the first character with a strong directionality, in
+ a manner analogous to the Paragraph Level determination in the
+ bidirectional algorithm). Authors are urged to only use this value
+ as a last resort when the direction of the text is truly unknown
+ and no better server-side heuristic can be applied.</p>
+
+ </dd>
+
+ </dl><p>The attribute has no <i>invalid value default</i> and no
+ <i>missing value default</i>.<p><dfn id="the-directionality">The directionality</dfn> of an element is either '<dfn id="concept-ltr" title="concept-ltr">ltr</dfn>' or '<dfn id="concept-rtl" title="concept-rtl">rtl</dfn>', and is determined as per the first
+ appropriate set of steps from the following list:<dl class="switch"><dt>If the element's <code title="attr-dir"><a href="#the-dir-attribute">dir</a></code> attribute is
+ in the <a href="#attr-dir-ltr-state" title="attr-dir-ltr-state">ltr</a> state</dt>
+
+ <dd><p><a href="#the-directionality">The directionality</a> of the element is '<a href="#concept-ltr" title="concept-ltr">ltr</a>'.</dd>
+
+
+ <dt>If the element's <code title="attr-dir"><a href="#the-dir-attribute">dir</a></code> attribute is
+ in the <a href="#attr-dir-rtl-state" title="attr-dir-rtl-state">rtl</a> state</dt>
+
+ <dd><p><a href="#the-directionality">The directionality</a> of the element is '<a href="#concept-rtl" title="concept-rtl">rtl</a>'.</dd>
+
+
+ <dt>If the element's <code title="attr-dir"><a href="#the-dir-attribute">dir</a></code> attribute is
+ in the <a href="#attr-dir-auto-state" title="attr-dir-auto-state">auto</a> state</dt>
+
+ <dt>If the element is a <code><a href="#the-bdi-element">bdi</a></code> element and the <code title="attr-dir"><a href="#the-dir-attribute">dir</a></code> attribute is not in a defined state
+ (i.e. it is not present or has an invalid value)</dt>
+
+ <dd>
+
+ <p>Find the first character in <a href="#tree-order">tree order</a> that
+ matches the following criteria:</p>
+
+ <ul><li><p>The character is from a <a href="#text-node">text node</a> that is a
+ descendant of the element whose <a href="#the-directionality" title="the
+ directionality">directionality</a> is being
+ determined.</li>
+
+ <li><p>The character is of bidirectional character type L, AL,
+ or R. <a href="#refsBIDI">[BIDI]</a></li>
+
+ <li>
+
+ <p>The character is not in a text node that has an ancestor
+ element that is a descendant of the element whose <a href="#the-directionality" title="the directionality">directionality</a> is being
+ determined and that is either:</p>
+
+ <ul class="brief"><li>A <code><a href="#script">script</a></code> element.
+ <li>A <code><a href="#the-style-element">style</a></code> element.
+ <li>An element with a <code title="attr-dir"><a href="#the-dir-attribute">dir</a></code> attribute in a defined state.
+ </ul></li>
+
+ </ul><p>If such a character is found and it is of bidirectional
+ character type AL or R, <a href="#the-directionality">the directionality</a> of the
+ element is '<a href="#concept-rtl" title="concept-rtl">rtl</a>'.</p>
+
+ <p>Otherwise, <a href="#the-directionality">the directionality</a> of the element is
+ '<a href="#concept-ltr" title="concept-ltr">ltr</a>'.</p>
+
+ </dd>
+
+
+
+ <dt>If the element is a <a href="#root-element">root element</a> and the <code title="attr-dir"><a href="#the-dir-attribute">dir</a></code> attribute is not in a defined state
+ (i.e. it is not present or has an invalid value)</dt>
+
+ <dd><p><a href="#the-directionality">The directionality</a> of the element is '<a href="#concept-ltr" title="concept-ltr">ltr</a>'.</dd>
+
+
+ <dt>If the element has a parent element and the <code title="attr-dir"><a href="#the-dir-attribute">dir</a></code> attribute is not in a defined state
+ (i.e. it is not present or has an invalid value)</dt>
+
+ <dd><p><a href="#the-directionality">The directionality</a> of the element is the same
+ as the element's parent element's <a href="#the-directionality" title="the
+ directionality">directionality</a>.</dd>
+
+
+ </dl><p>The effect of this attribute is primarily on the presentation
+ layer. For example, the rendering section in this specification
+ defines a mapping from this attribute to the CSS 'direction' and
+ 'unicode-bidi' properties, and CSS defines rendering in terms of
+ those properties.<hr><dl class="domintro"><dt><var title="">document</var> . <code title="dom-dir"><a href="#dom-dir">dir</a></code> [ = <var title="">value</var> ]</dt>
<dd>
<p>Returns <a href="#the-html-element">the <code>html</code> element</a>'s <code title="attr-dir"><a href="#the-dir-attribute">dir</a></code> attribute's value, if any.</p>
- <p>Can be set, to either "<code title="">ltr</code>" or "<code title="">rtl</code>", to replace <a href="#the-html-element">the <code>html</code> element</a>'s <code title="attr-dir"><a href="#the-dir-attribute">dir</a></code> attribute's value.</p>
+ <p>Can be set, to either "<code title="">ltr</code>", "<code title="">rtl</code>", or "<code title="">auto</code>" to replace <a href="#the-html-element">the <code>html</code> element</a>'s <code title="attr-dir"><a href="#the-dir-attribute">dir</a></code> attribute's value.</p>
<p>If there is no <a href="#the-html-element" title="the html element"><code>html</code> element</a>, returns the empty string and ignores new values.</p>
</dd>
@@ -17255,12 +17339,15 @@
<dd><a href="#phrasing-content">Phrasing content</a>.</dd>
<dt>Content attributes:</dt>
<dd><a href="#global-attributes">Global attributes</a></dd>
- <!--XXX <dd>Also, the <code title="attr-dir">dir</code> global attribute has special semantics on this element.</dd>-->
+ <dd>Also, the <code title="attr-dir"><a href="#the-dir-attribute">dir</a></code> global attribute has special semantics on this element.</dd>
<dt>DOM interface:</dt>
<dd>Uses <code><a href="#htmlelement">HTMLElement</a></code>.</dd>
</dl><p>The <code><a href="#the-bdi-element">bdi</a></code> element <a href="#represents">represents</a> a span of
text that is to be isolated from its surroundings for the purposes
- of bidirectional text formatting. <a href="#refsBIDI">[BIDI]</a></p><!-- XXX once we have dir=auto, this element should default to dir=auto --><div class="impl">
+ of bidirectional text formatting. <a href="#refsBIDI">[BIDI]</a><p class="note">The <code title="attr-dir"><a href="#the-dir-attribute">dir</a></code> global
+ attribute defaults to <code title="attr-dir-auto"><a href="#attr-dir-auto">auto</a></code> on
+ this element (it never inherits from the parent element like with
+ other elements).<div class="impl">
<p>For the purposes of the bidirectional algorithm, the user agent
must act as if the contents of the element were a self-contained
@@ -41166,6 +41253,27 @@
</dd>
+
+ <dt><dfn id="selector-ltr" title="selector-ltr"><code>:ltr</code></dfn></dt>
+
+ <dd>
+
+ <p>The <code title="selector-ltr"><a href="#selector-ltr">:ltr</a></code> pseudo-class must
+ match all elements whose <a href="#the-directionality" title="the
+ directionality">directionality</a> is '<a href="#concept-ltr" title="concept-ltr">ltr</a>'.</p>
+
+ </dd>
+
+ <dt><dfn id="selector-rtl" title="selector-rtl"><code>:rtl</code></dfn></dt>
+
+ <dd>
+
+ <p>The <code title="selector-rtl"><a href="#selector-rtl">:rtl</a></code> pseudo-class must
+ match all elements whose <a href="#the-directionality" title="the
+ directionality">directionality</a> is '<a href="#concept-rtl" title="concept-rtl">rtl</a>'.</p>
+
+ </dd>
+
</dl><p class="note">Another section of this specification defines the
<i><a href="#target-element">target element</a></i> used with the <code title="selector-target">:target</code> pseudo-class.</p>
@@ -62297,15 +62405,6 @@
expected to render parentheses around the text of <code><a href="#the-rt-element">rt</a></code>
elements in the absence of <code><a href="#the-rp-element">rp</a></code> elements.</p>
- <p>The <code><a href="#the-br-element">br</a></code> element is expected to render as if its
- contents were a single U+000A LINE FEED (LF) character and its
- 'white-space' property was 'pre'. User agents are expected to
- support the 'clear' property on inline elements (in order to render
- <code><a href="#the-br-element">br</a></code> elements with <code title="attr-br-clear"><a href="#attr-br-clear">clear</a></code> attributes) in the manner
- described in the non-normative note to this effect in CSS2.1.</p>
- <!-- section 9.5.2 of CSS2.1 -->
- <!-- br { content: '\A'; } /* waiting for 'content' to apply to elements */ -->
-
<p>The user agent is expected to hide <code><a href="#the-noscript-element">noscript</a></code> elements
for whom <a href="#concept-n-script" title="concept-n-script">scripting is enabled</a>,
irrespective of CSS rules.</p>
@@ -62868,6 +62967,8 @@
q:before { content: open-quote; }
q:after { content: close-quote; }
+br { content: '\A'; white-space: pre; }
+
nobr { white-space: nowrap; }
listing, plaintext, pre, xmp { white-space: pre; }
textarea { white-space: pre-wrap; }
@@ -62907,16 +63008,21 @@
table { border-style: outset; }
td, th { border-style: inset; }
-output { unicode-bidi: isolate; }
+:ltr { direction: ltr; }
+:rtl { direction: rtl; }
+[dir] { unicode-bidi: embed; }
+bdo, bdo[dir] { unicode-bidi: bidi-override; }
+bdi, output { unicode-bidi: isolate; }
+textarea[dir=auto], pre[dir=auto] { unicode-bidi: plaintext; } /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */</pre>
-[dir=ltr] { direction: ltr; unicode-bidi: embed; } /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
-[dir=rtl] { direction: rtl; unicode-bidi: embed; } /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
-bdo[dir=ltr], bdo[dir=rtl] { unicode-bidi: bidi-override; } /* <a href="#case-insensitive-selector-exception">case-insensitive</a> */
-bdi { unicode-bidi: isolate; }</pre>
+ <p>Rules setting the 'quotes' property appropriately for the locales
+ and languages understood by the user are expected to be present.</p>
- <p>In addition, rules setting the 'quotes' property appropriately
- for the locales and languages understood by the user are expected to
- be present.</p>
+ <p>User agents are expected to
+ support the 'clear' property on inline elements (in order to render
+ <code><a href="#the-br-element">br</a></code> elements with <code title="attr-br-clear"><a href="#attr-br-clear">clear</a></code> attributes) in the manner
+ described in the non-normative note to this effect in CSS2.1.</p>
+ <!-- section 9.5.2 of CSS2.1 -->
<hr><p id="decohints">The following rules are also expected to apply, as
<a href="#presentational-hints">presentational hints</a>:</p>
Received on Tuesday, 9 November 2010 00:58:13 UTC