8000 [css3-ui] edits for issues 24, 27, 31, 33, 34, 36, 41-44, 59 · w3c/csswg-drafts@aa6ba49 · GitHub
Skip to content

Commit aa6ba49

Browse files
committed
[css3-ui] edits for issues 24, 27, 31, 33, 34, 36, 41-44, 59
1 parent 3a34c44 commit aa6ba49

2 files changed

Lines changed: 397 additions & 92 deletions

File tree

css-ui/Overview.bs

Lines changed: 139 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ Ignored Terms: outline-top
2727
Ignored Terms: outline-left
2828
At Risk: ::value ::choices pseudo-elements
2929
At Risk: 'box-sizing' property value: padding-box
30+
At Risk: 'caret-color' property
3031
At Risk: 'ime-mode' property
3132
At Risk: 'text-overflow' property value: <string>
3233
At Risk: 'text-overflow' property 2-value syntax and definition
@@ -88,15 +89,15 @@ introduced several user interface related pseudo-classes, properties and values.
8889
This Working Draft incorporates and extends them to provide the ability, through CSS,
8990
to style elements based upon additional user interface states,
9091
to style fragments of user interface elements, and to alter the
91-
dynamic presentation of elements in ways previously only available through specific HTML4/XHTML1 elements and attributes.
92+
dynamic presentation of elements in ways previously only available through specific HTML elements and attributes.
9293

9394
<h3 id="purpose">Purpose</h3>
9495

9596
The purpose of this specification is to achieve the following objectives:
9697
<ul>
9798
<li>Extend the user interface features in CSS2.1.
9899
<li>Provide additional CSS mechanisms to augment or replace other
99-
dynamic presentation related features in HTML4/XHTML1.
100+
dynamic presentation related features in HTML.
100101
<li>Introduce directional navigation properties to assist in the construction of
101102
user interfaces which make use of a directional navigation model.
102103
</ul>
@@ -182,8 +183,8 @@ and the currently chosen radio button can be selected with the ''::value'' pseud
182183
<tr><th>Value:</th><td>
183184
content-box |
184185
padding-box |
185-
border-box |
186-
inherit</td></tr>
186+
border-box
187+
</td></tr>
187188
<tr><th>Initial:</th><td>content-box</td></tr>
188189
<tr><th>Applies to:</th><td>all elements that accept width or height</td></tr>
189190
<tr><th>Inherited:</th><td>no</td></tr>
@@ -280,19 +281,21 @@ ways:
280281

281282
<ol>
282283
<li>Outlines do not take up space.
283-
<li>Outlines may be non-rectangular.
284+
<li>Outlines may be non-rectangular.
285+
<li>UAs often render outlines on elements in the :focus state.
284286
</ol>
285287

286288
The outline properties control the style of these dynamic outlines.
287289

290+
Keyboard users depend on outline on elements in the :focus state for interaction with the page, thus authors must not make the outline invisible on such elements without making sure an alternative highlighting mechanism is provided.
291+
288292
<h3 id="outline">'outline' property</h3>
289293

290294
<table class="propdef"><tbody>
291295
<tr><th>Name:</th><td><dfn>outline</dfn></td></tr>
292296
<tr><th>Value:</th><td>
293297
[ &lt;'outline-color'&gt; || &lt;'outline-style'&gt; ||
294-
&lt;'outline-width'&gt; ] |
295-
inherit 1F0E
298+
&lt;'outline-width'&gt; ]
296299
</td></tr>
297300
<tr><th>Initial:</th><td>see individual properties</td></tr>
298301
<tr><th>Applies to:</th><td>all elements</td></tr>
@@ -307,7 +310,7 @@ inherit
307310

308311
<table class="propdef"><tbody>
309312
<tr><th>Name:</th><td><dfn>outline-width</dfn></td></tr>
310-
<tr><th>Value:</th><td><<'border-width'>> | inherit</td></tr>
313+
<tr><th>Value:</th><td><<'border-width'>></td></tr>
311314
<tr><th>Initial:</th><td>medium</td></tr>
312315
<tr><th>Applies to:</th><td>all elements</td></tr>
313316
<tr><th>Inherited:</th><td>no</td></tr>
@@ -321,7 +324,7 @@ inherit
321324

322325
<table class="propdef"><tbody>
323326
<tr><th>Name:</th><td><dfn>outline-style</dfn></td></tr>
324-
<tr><th>Value:</th><td>auto | <<'border-style'>> | inherit</td></tr>
327+
<tr><th>Value:</th><td>auto | <<'border-style'>></td></tr>
325328
<tr><th>Initial:</th><td>none</td></tr>
326329
<tr><th>Applies to:</th><td>all elements</td></tr>
327330
<tr><th>Inherited:</th><td>no</td></tr>
@@ -335,7 +338,7 @@ inherit
335338

336339
<table class="propdef"><tbody>
337340
<tr><th>Name:</th><td><dfn>outline-color</dfn></td></tr>
338-
<tr><th>Value:</th><td><<color>> | invert | inherit</td></tr>
341+
<tr><th>Value:</th><td><<color>> | invert</td></tr>
339342
<tr><th>Initial:</th><td>invert</td></tr>
340343
<tr><th>Applies to:</th><td>all elements</td></tr>
341344
<tr><th>Inherited:</th><td>no</td></tr>
@@ -399,8 +402,10 @@ regardless of color background.
399402

400403
Conformant UAs may ignore the ''invert'' value
401404
on platforms that do not support color inversion of the pixels on the screen.
405+
402406
If the UA does not support the ''invert'' value
403-
then the initial value of the 'outline-color' property
407+
then it must reject that value at parse-time, and
408+
the initial value of the 'outline-color' property
404409
is the ''currentColor'' [[!CSS3COLOR]] keyword.
405410

406411
The 'outline' property is a shorthand property,
@@ -452,7 +457,7 @@ However, it is possible to offset the outline and draw it beyond the border edge
452457

453458
<table class="propdef"><tbody>
454459
<tr><th>Name:</th><td><dfn>outline-offset</dfn></td></tr>
455-
<tr><th>Value:</th><td>&lt;length&gt; | inherit</td></tr>
460+
<tr><th>Value:</th><td>&lt;length&gt;</td></tr>
456461
<tr><th>Initial:</th><td>0</td></tr>
457462
<tr><th>Applies to:</th><td>all elements</td></tr>
458463
<tr><th>Inherited:</th><td>no</td></tr>
@@ -494,7 +499,7 @@ and if so, along which axis/axes.
494499

495500
<table class="propdef"><tbody>
496501
<tr><th>Name:</th><td><dfn>resize</dfn></td></tr>
497-
<tr><th>Value: </th><td>none | both | horizontal | vertical | inherit</td></tr>
502+
<tr><th>Value: </th><td>none | both | horizontal | vertical</td></tr>
498503
<tr><th>Initial:</th><td>none</td></tr>
499504
<tr><th>Applies to:</th><td>elements with 'overflow' other than visible</td></tr>
500505
<tr><th>Inherited:</th><td>no</td></tr>
@@ -610,12 +615,11 @@ too bad we don't have @viewport yet. otherwise this would be cool:
610615
<tr><th>Name:</th>
611616
<td><dfn>text-overflow</dfn></td></tr>
612617
<tr><th>Value:</th>
613-
<td> (
618+
<td> [
614619
clip |
615620
ellipsis |
616621
<<string>>
617-
){1,2} |
618-
inherit
622+
]{1,2}
619623
</td></tr>
620624
<tr><th>Initial:</th>
621625
<td>clip</td></tr>
@@ -854,11 +858,47 @@ to display the edge of the content
854858
at which point that content should be displayed
855859
rather than an ellipsis/string.
856860

861+
<div class="example"><p style="display:none">Example(s):
862+
863+
This example uses text-overflow on an element with overflow scroll
864+
to demonstrate the above described behavior.
865+
866+
sample CSS:
867+
<pre><code class="lang-css">
868+
div.crawlbar {
869+
text-overflow: ellipsis;
870+
height: 2em;
871+
overflow: scroll;
872+
white-space: nowrap;
873+
width: 15em;
874+
border:1em solid black;
875+
}
876+
</code></pre>
877+
878+
sample HTML fragment:
879+
<pre><code class="lang-markup">
880+
&lt;div class="crawlbar"&gt;
881+
CSS is awesome, especially when you can scroll
882+
to see extra text instead of just
883+
having it overlap other text by default.
884+
&lt;/div&gt;
885+
</code></pre>
886+
887+
demonstration of sample CSS and HTML:
888+
<div style="text-overflow: ellipsis; height: 2em; overflow: scroll; white-space: nowrap; width: 15em; border:1em solid black;">
889+
CSS is awesome, especially when you can scroll
890+
to see extra text instead of just
891+
having it overlap other text by default.
892+
</div>
893+
</div> <!-- example -->
894+
857895
As some content is scrolled into view,
858896
it is likely that other content may scroll out of view on the other side.
859897
If that content's block container element is the same
860898
that's doing the scrolling,
861-
then implementations should render an ellipsis/string in place of
899+
and the computed value of 'text-overflow' has two values, with
900+
the first a non-clip value,
901+
then implementations must render an ellipsis/string in place of
862902
the clipped content,
863903
with the same details as described in the value definition above,
864904
except that the ellipsis/string is drawn in the <a>start</a>
@@ -869,6 +909,17 @@ While the content is being scrolled,
869909
implementations may adjust their rendering of ellipses/strings
870910
(e.g. align to the box edges rather than line edges).
871911

912+
<div class="example"><p style="display:none">Example(s):
913+
914+
Same as previous example except with <code>text-overflow: ellipsis ellipsis</code>, demonstrated:
915+
916+
<div style="text-overflow: ellipsis ellipsis; height: 2em; overflow: scroll; white-space: nowrap; width: 15em; border:1em solid black;">
917+
CSS is awesome, especially when you can scroll
918+
to see extra text instead of just
919+
having it overlap other text by default.
920+
</div>
921+
</div><!-- example -->
922+
872923
If there is insufficient space for both start
873924
and end ellipses/strings,
874925
then only the end ellipsis/string should be rendered.
@@ -892,7 +943,7 @@ then only the end ellipsis/string should be rendered.
892943
all-scroll
893944
| zoom-in | zoom-out
894945
<br>
895-
] ] | inherit </td></tr>
946+
] ] </td></tr>
896947
<tr><th>Initial:</th><td>auto</td></tr>
897948
<tr><th>Applies to:</th><td>all elements</td></tr>
898949
<tr><th>Inherited:</th><td>yes</td></tr>
@@ -915,6 +966,7 @@ If the user agent cannot handle the first cursor of a list of cursors,
915966
it must attempt to handle the second, etc.
916967
If the user agent cannot handle any user-defined cursor,
917968
it must use the cursor keyword at the end of the list.
969+
Conforming User Agents may, instead of &lt;uri&gt;, support &lt;image&gt; which is a superset.
918970
The optional &lt;x&gt; and &lt;y&gt; coordinates
919971
identify the exact position within the image which is the pointer position (i.e., the hotspot).
920972
</dd>
@@ -1087,16 +1139,71 @@ to the next value and attempt to use the "hyper.cur" cursor.
10871139
If that cursor format was also not supported,
10881140
the UA could attempt to use the "hyper.png" cursor with the explicit hot spot.
10891141
Finally if the UA does not support any of those image cursor formats, the UA would skip to the last value
1090-
and simply render the ''pointer'' cursor.
1142+
and render the ''pointer'' cursor.
10911143
</div>
10921144

1145+
<h5 id="canvas_cursor">Cursor of the canvas</h5>
1146+
1147+
The document <a href="http://www.w3.org/TR/CSS21/intro.html#the-canvas">canvas</a>
1148+
is the infinite surface over which the document is rendered [[!CSS21]].
1149+
Since no element corresponds to the canvas,
1150+
in order to allow styling of the cursor when not over any element,
1151+
the canvas cursor re-uses the root element's cursor.
1152+
However, if no boxes are generated for the root element
1153+
(for example, if the root element has ''display: none''),
1154+
then the canvas cursor is the platform-dependent default cursor.
1155+
1156+
Note: An element might be invisible,
1157+
but still generate boxes. For example,
1158+
if the element has ''visibility: hidden'' but not ''display: none'',
1159+
boxes are generated for it and its cursor is used for the canvas.
1160+
1161+
1162+
<h3 id="insertion-caret">Insertion caret</h3>
1163+
1164+
<h4 id="caret-color">Coloring the insertion caret: caret-color</h4>
1165+
<table class="propdef"><tbody>
1166+
<tr><th>Name: </th><td><dfn>caret-color</dfn></td></tr>
1167+
<tr><th>Value: </th><td>auto | &lt;color&gt;</td></tr>
1168+
<tr><th>Initial:</th><td>auto</td></tr>
1169+
<tr><th>Applies to:</th><td>elements that accept input</td></tr>
1170+
<tr><th>Inherited:</th><td>no</td></tr>
1171+
<tr><th>Percentages:</th><td>N/A</td></tr>
1172+
<tr><th>Media:</th><td>interactive</td></tr>
1173+
<tr><th>Computed&nbsp;value:</th><td>The computed value for ''auto'' is ''currentColor''. For &lt;color&gt; values, the computed value is as defined for the [[!CSS3COLOR]] 'color' property.</td></tr>
1174+
<tr><th>Animatable:</th><td>no</td></tr>
1175+
</tbody></table>
1176+
1177+
<dl>
1178+
<dt>auto</dt>
1179+
<dd>the color of the element.</dd>
1180+
<dt>&lt;color&gt;</dt>
1181+
<dd>the insertion caret is colored with the specified color.</dd>
1182+
</dl>
1183+
1184+
The caret is a visible indicator of the insertion point in an element where text (and potentially other content) is inserted by the user. This property controls the color of that visible indicator.
1185+
1186+
Note: caret shape and blinking is outside the scope of this feature and thus unspecified.
1187+
1188+
<div class="example">
1189+
Example: a textarea with
1190+
<code class="lang-css">caret-color:#00aacc;</code>
1191+
1192+
<textarea style="caret-color:#00aacc;">
1193+
caret-color:#00aacc
1194+
</textarea>
1195+
1196+
</div><!-- example -->
1197+
1198+
Note: The caret-color property is at risk.
1199+
10931200

10941201
<h3 id="keyboard">Keyboard control</h3>
10951202

10961203
<h4 id="nav-dir">Directional focus navigation: the 'nav-up', 'nav-right', 'nav-down', 'nav-left' properties</h4>
10971204
<table class="propdef"><tbody>
10981205
<tr><th>Name: </th><td><dfn>nav-up</dfn>, <dfn>nav-right</dfn>, <dfn>nav-down</dfn>, <dfn>nav-left</dfn></td></tr>
1099-
<tr><th>Value: </th><td>auto | &lt;id&gt; [ current | root | &lt;target-name&gt; ]? | inherit</td></tr>
1206+
<tr><th>Value: </th><td>auto | &lt;id&gt; [ current | root | &lt;target-name&gt; ]? </td></tr>
11001207
<tr><th>Initial:</th><td>auto</td></tr>
11011208
<tr><th>Applies to:</th><td>all enabled elements</td></tr>
11021209
<tr><th>Inherited:</th><td>no</td></tr>
@@ -1124,7 +1231,7 @@ the user agent automatically determines which element to navigate the focus to.
11241231
<dt>&lt;target-name&gt;</dt>
11251232
<dd>
11261233
The &lt;target-name&gt; parameter indicates the target frame for the focus navigation.
1127-
It is a string and it cannot start with the underscore "_" character.
1234+
It is a &lt;string&gt; and it cannot start with the underscore "_" character.
11281235
If the specified target frame does not exist,
11291236
the parameter will be treated as the keyword ''current'',
11301237
which means to simply use the frame that the element is in.
@@ -1188,7 +1295,8 @@ it is still important to ensure focus navigation behaviors which relate reasonab
11881295

11891296
<table class="propdef"><tbody>
11901297
<tr><th>Name: </th><td><dfn>ime-mode</dfn></td></tr>
1191-
<tr><th>Value: </th><td>auto | normal | active | inactive | disabled | inherit</td></tr>
1298+
<tr><th>Value: </th><td>auto | normal | active | inactive | disabled
1299+
</td></tr>
11921300
<tr><th>Initial:</th><td>auto</td></tr>
11931301
<tr><th>Applies to:</th><td>text fields</td></tr>
11941302
<tr><th>Inherited:</th><td>no</td></tr>
@@ -1378,23 +1486,25 @@ button
13781486
white-space:normal;
13791487
}
13801488

1381-
input[type=reset]
1489+
input[type=reset]:lang(en)
13821490
{
1383-
/* default content of HTML4/XHTML1 input type=reset button */
1491+
/* default content of HTML input type=reset button, per language */
13841492
content: "Reset";
13851493
}
13861494

1387-
input[type=submit]
1495+
input[type=submit]:lang(en)
13881496
{
1389-
/* default content of HTML4/XHTML1 input type=submit button */
1497+
/* default content of HTML input type=submit button, per language */
13901498
content: "Submit";
13911499
}
13921500

1501+
/* UAs should use language-specific Reset/Submit rules for others. */
1502+
13931503
input[type=button],
13941504
input[type=reset][value],
13951505
input[type=submit][value]
13961506
{
1397-
/* text content/labels of HTML4/XHTML1 "input" buttons */
1507+
/* text content/labels of HTML "input" buttons */
13981508
content: attr(value);
13991509
}
14001510

@@ -1406,7 +1516,7 @@ textarea
14061516

14071517
input[type=hidden]
14081518
{
1409-
/* appearance of the HTML4/XHTML1 hidden text field in particular */
1519+
/* appearance of the HTML hidden text field in particular */
14101520
display: none;
14111521
}
14121522

@@ -1434,7 +1544,7 @@ select,select[size=1]
14341544

14351545
select[size]:active
14361546
{
1437-
/* active HTML4/XHTML &lt;select&gt; w/ size more than 1 - appearance of active list */
1547+
/* active HTML &lt;select&gt; w/ size more than 1 - appearance of active list */
14381548
display: inline-block;
14391549
}
14401550

0 commit comments

Comments
 (0)