HTML Standard Tracker

Filter

File a bug

SVNBugCommentTime (UTC)
2768Filling in the rendering section: <select>, <progress>, <meter>; minor editorial fixes here and there.2009-02-10 00:06
@@ -21473,20 +21473,21 @@ interface <dfn>CueRangeCallback</dfn> {
 
   <p>Other arguments must be ignored and must not cause the user agent
   to raise an exception. A future version of this specification will
   probably define other parameters to be passed to <code
   title="dom-canvas-toDataURL">toDataURL()</code> to allow authors to
   more carefully control compression settings, image metadata,
   etc.</p>
 
 
   <h5>The 2D context</h5>
+  <!-- v2: we're on v3. suggestions for next version are marked v4. -->
 
   <p>When the <code title="dom-canvas-getContext">getContext()</code>
   method of a <code>canvas</code> element is invoked with <dfn
   title="canvas-context-2d"><code>2d</code></dfn> as the argument, a
   <code>CanvasRenderingContext2D</code> object is returned.</p>
 
   <p>There is only one <code>CanvasRenderingContext2D</code> object
   per canvas, so calling the <code
   title="dom-canvas-getContext">getContext()</code> method with the
   <code title="canvas-context-2d">2d</code> argument a second time
@@ -21513,21 +21514,26 @@ interface <dfn>CueRangeCallback</dfn> {
   void <span title="dom-context-2d-transform">transform</span>(in float m11, in float m12, in float m21, in float m22, in float dx, in float dy);
   void <span title="dom-context-2d-setTransform">setTransform</span>(in float m11, in float m12, in float m21, in float m22, in float dx, in float dy);
 <!--
   // XXXv4 we've also received requests for:
   void skew(...);
   void reflect(...); // or mirror(...)
 -->
   // compositing
            attribute float <span title="dom-context-2d-globalAlpha">globalAlpha</span>; // (default 1.0)
            attribute DOMString <span title="dom-context-2d-globalCompositeOperation">globalCompositeOperation</span>; // (default source-over)
-
+<!--
+  // XXXv4 we've also received requests for:
+  - turning off antialiasing to avoid seams when patterns are painted next to each other
+    - might be better to overdraw?
+    - might be better to just draw at a higher res then downsample, like for 3d?
+-->
   // colors and styles
            attribute any <span title="dom-context-2d-strokeStyle">strokeStyle</span>; // (default black)
            attribute any <span title="dom-context-2d-fillStyle">fillStyle</span>; // (default black)
   <span>CanvasGradient</span> <span title="dom-context-2d-createLinearGradient">createLinearGradient</span>(in float x0, in float y0, in float x1, in float y1);
   <span>CanvasGradient</span> <span title="dom-context-2d-createRadialGradient">createRadialGradient</span>(in float x0, in float y0, in float r0, in float x1, in float y1, in float r1);
   <span>CanvasPattern</span> <span title="dom-context-2d-createPattern">createPattern</span>(in <span>HTMLImageElement</span> image, in DOMString repetition);
   <span>CanvasPattern</span> <span title="dom-context-2d-createPattern">createPattern</span>(in <span>HTMLCanvasElement</span> image, in DOMString repetition);
 
   // line caps/joins
            attribute float <span title="dom-context-2d-lineWidth">lineWidth</span>; // (default 1)
@@ -39818,22 +39824,22 @@ interface <dfn>Window</dfn> {
   processing events from any one <span>task source</span> out of
   order.</p>
 
   <p>An <span>event loop</span> must continually run through the
   following steps for as long as it exists:</p>
 
   <ol>
 
    <li><p>Run the oldest task on one of the <span>event loop</span>'s
    <span title="task queue">task queues</span>, ignoring tasks whose
-   associated <code>Document</code>s are not <span title="active
-   document">active</span>. The user agent may pick any <span>task
+   associated <code>Document</code>s are not <span>fully
+   active</span>. The user agent may pick any <span>task
    queue</span>.</p></li>
 
    <li><p>Remove that task from its <span>task queue</span>.</p></li>
 
    <li><p>If necessary, update the rendering or user interface of any
    <code>Document</code> or <span>browsing context</span> to reflect
    the current state.</p></li>
 
    <li><p>Return to the first step of the <span>event
    loop</span>.</p></li>
@@ -61243,23 +61249,20 @@ http://lxr.mozilla.org/seamonkey/search?string=nested
 
   <p>Some rules are intended for the author-level zero-specificity
   presentational hints part of the CSS cascade; these are explicitly
   called out as <dfn>presentational hints</dfn>.</p>
 
   <p>Rules regarding left and right margins are given here as
   appropriate for elements whose 'direction' property is 'ltr', and
   are expected to be flipped around on elements whose 'direction'
   property is 'rtl'.</p>
 
-  <p class="XXX">Please send feedback if you can accurately describe
-  rules required by legacy content.</p>
-
   <hr>
 
   <p>When the text below says that an attribute <var
   title="">attribute</var> on an element <var title="">element</var>
   <dfn>maps to the pixel length property</dfn> (or properties) <var
   title="">properties</var>, it means that if <var
   title="">element</var> has an attribute <var
   title="">attribute</var> set, and parsing that attribute's value
   using the <span>rules for parsing non-negative integers</span>
   doesn't generate an error, then the user agent is expected to use
@@ -62564,33 +62567,35 @@ object[align=bottom] {
   specification. User agents are encouraged to make their bindings set
   the 'appearance' CSS property appropriately to achieve
   platform-native appearances for widgets, and are expected to
   implement any relevant animations, etc, that are appropriate for the
   platform. <a href="#refsCSSUI">[CSSUI]</a></p>
 
 
   <h4>The <code>bb</code> element</h4>
 
   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
+
 bb:empty { binding: <i title="">bb</i>; }</pre>
 
   <p>When the <i title="">bb</i> binding applies to a <code>bb</code>
   element, the element is expected to render as an 'inline-block' box
   rendered as a button, about one line high, containing text derived
   from the element's <code title="attr-bb-type">type</code> attribute
   in a user-agent-defined (and probably locale-specific) fashion.</p>
 
 
 
   <h4>The <code>button</code> element</h4>
 
   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
+
 button { binding: <i title="">button</i>; }</pre>
 
   <p>When the <i title="">button</i> binding applies to a
   <code>button</code> element, the element is expected to render as an
   'inline-block' box rendered as a button whose contents are the
   contents of the element.</p>
 
 
 
   <h4>The <code>datagrid</code> element</h4>
@@ -62598,20 +62603,21 @@ button { binding: <i title="">button</i>; }</pre>
   <p class="XXX">This section will probably include details on how to
   render DATAGRID (including <span id="datagridPseudos">its
   pseudo-elements</span>), drag-and-drop, etc, in a visual medium, in
   concert with CSS. Implementation experience is desired before this
   section is filled in.</p>
 
 
   <h4>The <code>details</code> element</h4>
 
   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
+
 details { binding: <i title="">details</i>; }</pre>
 
   <p>When the <i title="">details</i> binding applies to a
   <code>details</code> element, the element is expected to render as a
   'block' box with its 'padding-left' property set to '40px'. The
   element's shadow tree is expected to take a child element that
   matches the selector <code
   title="">:bound-element&nbsp;>&nbsp;legend:first-child</code> and
   place it in a first 'block' box container, and then take the
   remaining child nodes and place them in a later 'block' box
@@ -62632,20 +62638,21 @@ details { binding: <i title="">details</i>; }</pre>
 <!--
 XXX examples with screenshots
 http://mail.gnome.org/archives/usability/2006-June/msg00015.html
 -->
 
 
 
   <h4>The <code>input</code> element as a text entry widget</h4>
 
   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
+
 input { binding: <i title="">input-textfield</i>; }
 input[type=password] { binding: <i title="">input-password</i>; }
 /* later rules override this for other values of type="" */</pre>
 
   <p>When the <i title="">input-textfield</i> binding applies to an
   <code>input</code> element whose <code
   title="attr-input-type">type</code> attribute is in the <span
   title="attr-input-type-text">Text</span>, <span
   title="attr-input-type-search">Search</span>, <span
   title="attr-input-type-url">URL</span>, or <span
@@ -62688,20 +62695,21 @@ input[type=password] { binding: <i title="">input-password</i>; }
   font for the element for which the algorithm is being run, in
   pixels, and <var title="">max</var> is the maximum character width
   of that same font, also in pixels. (The element's 'letter-spacing'
   property does not affect the result.)</p>
 
 
 
   <h4>The <code>input</code> element as domain-specific widgets</h4>
 
   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
+
 input[type=datetime] { binding: <i title="">input-datetime</i>; }
 input[type=date] { binding: <i title="">input-date</i>; }
 input[type=month] { binding: <i title="">input-month</i>; }
 input[type=week] { binding: <i title="">input-week</i>; }
 input[type=time] { binding: <i title="">input-time</i>; }
 input[type=datetime-local] { binding: <i title="">input-datetime-local</i>; }
 input[type=number] { binding: <i title="">input-number</i>; }</pre>
 
   <p>When the <i title="">input-datetime</i> binding applies to an
   <code>input</code> element whose <code
@@ -62753,45 +62761,47 @@ input[type=number] { binding: <i title="">input-number</i>; }</pre>
   control.</p>
 
   <p>These controls are all expected to be about one line high, and
   about as wide as necessary to show the widest possible value.</p>
 
 
 
   <h4>The <code>input</code> element as a range control</h4>
 
   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
+
 input[type=range] { binding: <i title="">input-range</i>; }</pre>
 
   <p>When the <i title="">input-range</i> binding applies to an
   <code>input</code> element whose <code
   title="attr-input-type">type</code> attribute is in the <span
   title="attr-input-type-range">Range</span> state, the element is
   expected to render as an 'inline-block' box depicting a slider
   control.</p>
 
-  <p>When the control is wider than it is tall, the control is
-  expected to be a horizontal slider, with the lowest value on the
-  right if the 'direction' property on this element has a computed
-  value of 'rtl', and on the left otherwise. When the control is
-  taller than it is wide, it is expected to be a vertical slider, with
-  the lowest value on the top.</p>
+  <p>When the control is wider than it is tall (or square), the
+  control is expected to be a horizontal slider, with the lowest value
+  on the right if the 'direction' property on this element has a
+  computed value of 'rtl', and on the left otherwise. When the control
+  is taller than it is wide, it is expected to be a vertical slider,
+  with the lowest value on the bottom.</p>
 
   <p>Predefined suggested values (provided by the <code
   title="attr-input-list">list</code> attribute) are expected to be
   shown as tick marks on the slider, which the slider can snap to.</p>
 
 
 
   <h4>The <code>input</code> element as a color well</h4>
 
   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
+
 input[type=color] { binding: <i title="">input-color</i>; }</pre>
 
   <p>When the <i title="">input-color</i> binding applies to an
   <code>input</code> element whose <code
   title="attr-input-type">type</code> attribute is in the <span
   title="attr-input-type-color">Color</span> state, the element is
   expected to render as an 'inline-block' box depicting a color well,
   which, when activated, provides the user with a color picker (e.g. a
   color wheel or color palette) from which the color can be
   changed.</p>
@@ -62799,20 +62809,21 @@ input[type=color] { binding: <i title="">input-color</i>; }</pre>
   <p>Predefined suggested values (provided by the <code
   title="attr-input-list">list</code> attribute) are expected to be
   shown in the color picker interface, not on the color well
   itself.</p>
 
 
 
   <h4>The <code>input</code> element as a check box and radio button widgets</h4>
 
   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
+
 input[type=checkbox] { binding: <i title="">input-checkbox</i>; }
 input[type=radio] { binding: <i title="">input-radio</i>; }</pre>
 
   <p>When the <i title="">input-checkbox</i> binding applies to an
   <code>input</code> element whose <code
   title="attr-input-type">type</code> attribute is in the <span
   title="attr-input-type-checkbox">Checkbox</span> state, the element
   is expected to render as an 'inline-block' box containing a single
   check box control, with no label.</p>
 
@@ -62821,37 +62832,39 @@ input[type=radio] { binding: <i title="">input-radio</i>; }</pre>
   title="attr-input-type">type</code> attribute is in the <span
   title="attr-input-type-radio">Radio Button</span> state, the element
   is expected to render as an 'inline-block' box containing a single
   radio button control, with no label.</p>
 
 
 
   <h4>The <code>input</code> element as a file upload control</h4>
 
   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
+
 input[type=file] { binding: <i title="">input-file</i>; }</pre>
 
   <p>When the <i title="">input-file</i> binding applies to an
   <code>input</code> element whose <code
   title="attr-input-type">type</code> attribute is in the <span
   title="attr-input-type-file">File Upload</span> state, the element
   is expected to render as an 'inline-block' box containing a span of
   text giving the filename(s) of the <span
   title="concept-input-type-file-selected">selected files</span>, if
   any, followed by a button that, when activated, provides the user
   with a file picker from which the selection can be changed.</p>
 
 
 
   <h4>The <code>input</code> element as a button</h4>
 
   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
+
 input[type=submit], input[type=reset], input[type=button] {
   binding: <i title="">input-button</i>;
 }</pre>
 
   <p>When the <i title="">input-button</i> binding applies to an
   <code>input</code> element whose <code
   title="attr-input-type">type</code> attribute is in the <span
   title="attr-input-type-submit">Submit Button</span> <span
   title="attr-input-type-reset">Reset Button</span>, or <span
   title="attr-input-type-button">Button</span> state, the element is
@@ -62859,41 +62872,154 @@ input[type=submit], input[type=reset], input[type=button] {
   about one line high, containing the contents of the element's <code
   title="attr-input-value">value</code> attribute, if any, or text
   derived from the element's <code title="attr-input-type">type</code>
   attribute in a user-agent-defined (and probably locale-specific)
   fashion, if not.</p>
 
 
 
   <h4>The <code>marquee</code> element</h4>
 
-  <p class="XXX">...</p>
+  <p class="XXX">...(Waiting til I've specced the DOM side of this)...</p>
   <!-- XXX attributes: height/width; direction is case insensitive; bgcolor; hspace/vspace -->
 
 
 
   <h4>The <code>meter</code> element</h4>
 
-  <p class="XXX">...</p>
+  <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
+
+meter {
+  binding: <i title="">meter</i>;
+}</pre>
+
+  <p>When the <i title="">meter</i> binding applies to a
+  <code>meter</code> element, the element is expected to render as an
+  'inline-block' box with a 'height' of '1em' and a 'width' of '5em',
+  a 'vertical-align' of '-0.2em', and with its contents depicting a
+  gauge.</p>
+
+  <p>When the element is wider than it is tall (or square), the
+  depiction is expected to be of a horizontal gauge, with the minimum
+  value on the right if the 'direction' property on this element has a
+  computed value of 'rtl', and on the left otherwise. When the element
+  is taller than it is wide, it is expected to depict a vertical
+  gauge, with the minimum value on the bottom.</p>
+
+  <p>User agents are expected to use a presentation consistent with
+  platform conventions for gauges, if any.</p>
+
+  <p class="note">Requirements for what must be depicted in the gauge
+  are included in the definition of the <code>meter</code>
+  element.</p>
 
 
 
   <h4>The <code>progress</code> element</h4>
 
-  <p class="XXX">...</p>
+  <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
+
+progress {
+  binding: <i title="">progress</i>;
+}</pre>
+
+  <p>When the <i title="">progress</i> binding applies to a
+  <code>progress</code> element, the element is expected to render as
+  an 'inline-block' box with a 'height' of '1em' and a 'width' of
+  '10em', a 'vertical-align' of '-0.2em', and with its contents
+  depicting a horizontal progress bar, with the start on the right and
+  the end on the left if the 'direction' property on this element has
+  a computed value of 'rtl', and with the start on the left and the
+  end on the right otherwise.</p>
+
+  <p>User agents are expected to use a presentation consistent with
+  platform conventions for progress bars. In particular, user agents
+  are expected to use different presentations for determinate and
+  indeterminate progress bars. User agents are also expected to vary
+  the presentation based on the dimensions of the element.</p>
+
+  <p class="example">For example, on some platforms for showing
+  indeterminate progress there is an asychronous progress indicator
+  with square dimensions, which could be used when the element is
+  square, and an indeterminate progress bar, which could be used when
+  the element is wide.</p>
+
+  <p class="note">Requirements for how to determine if the progress
+  bar is determinate or indeterminate, and what progress a determinate
+  progress bar is to show, are included in the definition of the
+  <code>progress</code> element.</p>
 
 
 
   <h4>The <code>select</code> element</h4>
 
-  <p class="XXX">...</p>
-  <!-- multiple, size; optgroup -->
+  <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
+
+select {
+  binding: <i title="">select</i>;
+}</pre>
+
+  <p>When the <i title="">select</i> binding applies to a
+  <code>select</code> element whose <code
+  title="attr-select-multiple">multiple</code> attribute is present,
+  the element is expected to render as a multi-select list box.</p>
+
+  <p>When the <i title="">select</i> binding applies to a
+  <code>select</code> element whose <code
+  title="attr-select-multiple">multiple</code> attribute is absent,
+  and the element's <code title="attr-select-size">size</code>
+  attribute <span title="rules for parsing non-negative
+  integers">specifies</span> a value greater than 1, the element is
+  expected to render as a single-select list box.</p>
+
+  <p>When the element renders as a list box, it is expected to render
+  as an 'inline-block' box whose 'height' is the height necessary to
+  contain as many rows for items as <span title="rules for parsing
+  non-negative integers">specified</span> by the element's <code
+  title="attr-select-size">size</code> attribute, and whose 'width' is
+  the <span>width of the <code>select</code>'s labels</span>, plus the
+  width of a scrollbar.</p>
+
+  <p>When the <i title="">select</i> binding applies to a
+  <code>select</code> element whose <code
+  title="attr-select-multiple">multiple</code> attribute is absent,
+  and the element's <code title="attr-select-size">size</code>
+  attribute is either absent or <span title="rules for parsing
+  non-negative integers">specifies</span> a value less than or equal
+  to 1, the element is expected to render as a one-line drop down box
+  whose width is the <span>width of the <code>select</code>'s
+  labels</span>.</p>
+
+  <p>In either case (list box or drop-down box), the element's items
+  are expected to be the element's <span
+  title="concept-select-option-list">list of options</span>, with the
+  element's <code>optgroup</code> element children providing headers
+  for groups of options where applicable.</p>
+
+  <p>The <dfn>width of the <code>select</code>'s labels</dfn> is the
+  wider of the width necessary to render the widest
+  <code>optgroup</code>, and the width necessary to render the widest
+  <code>option</code> element in the element's <span
+  title="concept-select-option-list">list of options</span> (including
+  its indent, if any).</p>
+
+  <p>An <code>optgroup</code> element is expected to be rendered by
+  displaying the element's <code
+  title="attr-optgroup-label">label</code> attribute.</p>
+
+  <p>An <code>option</code> element is expected to be rendered by
+  displaying the element's <code
+  title="concept-option-label">label</code>, indented under its
+  <code>optgroup</code> element if it has one.</p>
+
+
+
 
 
 
   <h4>The <code>textarea</code> element</h4>
 
   <p class="XXX">...</p>
 
 
 
   <h3>Frames and framesets</h3>

|