You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -22,12 +22,14 @@ Abstract: This specification describes user interface related selectors,
22
22
Deadline: 2012-02-14
23
23
Link Defaults: css-color-3 (property) color
24
24
Link Defaults: selectors-4 (selector) :indeterminate
25
+
Ignored Terms: style
26
+
Ignored Terms: text
27
+
Ignored Terms: default
25
28
Ignored Terms: outline-top
26
29
Ignored Terms: outline-left
27
30
Ignored Terms: nav-index
28
31
Ignored Terms: ime-mode
29
32
Ignored Terms: icon
30
-
At Risk: ::value ::choices pseudo-elements
31
33
At Risk: 'box-sizing' property value: padding-box
32
34
At Risk: 'caret-color' property
33
35
At Risk: 'text-overflow' property value: <<string>>
@@ -41,10 +43,6 @@ At risk due to only one implementation:
41
43
<li>box-sizing: padding-box - only FF supports in prefixed version
42
44
43
45
Not at risk:
44
-
<li>CSS2.1: :hover :active :focus
45
-
<li>Selectors: :enabled :disabled :checked
46
-
<li>:indeterminate implemented by FF3.6, IE9, Opera 10.6, Saf3
47
-
48
46
<li>box-sizing implemented by IE5/Mac, Opera
49
47
-moz-box-sizing implemented by Mozilla
50
48
@@ -75,19 +73,15 @@ implemented by Opera/Presto desktop with "shift+arrow", and Blink, as well as Sa
75
73
76
74
<h2 id="intro">Introduction</h2>
77
75
78
-
This module describes selectors and CSS properties which enable authors
79
-
to style user interface related states, element fragments, properties
80
-
and values.
76
+
This module describes CSS properties which enable authors
77
+
to style user interface related properties and values.
81
78
82
79
<a href="http://www.w3.org/TR/REC-CSS1#anchor-pseudo-classes">Section 2.1 of CSS1</a>[[CSS1]]
83
80
and <a href="http://www.w3.org/TR/CSS2/ui.html">Chapter 18 of CSS2</a>[[CSS2]]
84
-
introduced several user interface related pseudo-classes, properties and values.
85
-
<a href="http://www.w3.org/TR/css3-selectors/#UIstates">Section 6.6.4 of Selectors</a>[[!SELECT]] also describes several additional user interface related pseudo-classes (and one pseudo-element). <a href="http://www.w3.org/TR/2000/WD-css3-userint-20000216">User Interface for CSS3 (16 February 2000)</a> introduced several new user interface related features.
81
+
introduced several user interface related properties and values.
82
+
<a href="http://www.w3.org/TR/2000/WD-css3-userint-20000216">User Interface for CSS3 (16 February 2000)</a> introduced several new user interface related features.
86
83
87
-
This Working Draft incorporates and extends them to provide the ability, through CSS,
88
-
to style elements based upon additional user interface states,
89
-
to style fragments of user interface elements, and to alter the
90
-
dynamic presentation of elements in ways previously only available through specific HTML elements and attributes.
84
+
This Working Draft incorporates, extends, and supersedes them.
'text-transform', 'line-height'. UAs may apply other properties as well.
145
-
146
-
147
-
<h4 id="pseudo-choices">::choices</h4>
148
-
149
-
Similarly, a form element which represents a list of options
150
-
may contain both a label for the list,
151
-
and the list of choices itself.
152
-
For such elements,
153
-
the ''::choices'' pseudo-element selects
154
-
the representation of just the list of choices themselves,
155
-
in order to style their appearance.
156
-
157
-
A list of radio buttons can also be selected with the ''::choices'' pseudo-element,
158
-
and the currently chosen radio button can be selected with the ''::value'' pseudo-element.
159
-
160
111
<h2 id="box-model">Box Model addition</h2>
161
112
162
113
<h3 id="box-sizing">'box-sizing' property</h3>
@@ -206,7 +157,7 @@ That is, any padding or border specified on the element
206
157
is laid out and drawn inside this specified width and height.
207
158
The content width and height are calculated
208
159
by subtracting the border and padding widths of the respective sides
209
-
from the specified 'width'
160
+
from the specified 'width'
210
161
and 'height' properties.
211
162
As the content width and height
212
163
<a href="http://www.w3.org/TR/CSS21/visudet.html#the-width-property">cannot be negative</a> ([[!CSS21]], section 10.2),
@@ -272,12 +223,11 @@ ways:
272
223
273
224
The outline properties control the style of these dynamic outlines.
274
225
275
-
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.
226
+
The stacking of the rendering of these outlines is explicitly left up to implementations to provide a better user experience per platform. This supersedes the stacking of outlines as defined in CSS 2.1.
276
227
277
-
Issue: <a href="https://wiki.csswg.org/spec/css3-ui#issue-51">51</a> Applying transforms to outlines behaves strangely in current implementations (See <a href="
278
-
http://florian.rivoal.net/csswg/outline.html">transformed outline test case</a>). Proposed resolution: leave transformed outline rendering undefined in CSS3-UI.
228
+
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.
279
229
280
-
Issue: <a href="https://wiki.csswg.org/spec/css3-ui#issue-55">55</a> Outline rendering is under-specified, and details are not interoperable (See <a href="https://lists.w3.org/Archives/Public/www-style/2014Dec/0134.html">a few outline rendering test cases</a>). Tentative proposal: leave non-interop details unspecified in CSS3-UI, attempt to converge in level 4.
230
+
The rendering of applying transforms to outlines is left explicitly undefined in CSS3-UI.
281
231
282
232
283
233
<h3 id="outline">'outline' property</h3>
@@ -558,36 +508,20 @@ The 'resize' property applies to elements
558
508
whose computed 'overflow' value
559
509
is something other than ''visible''.
560
510
561
-
Issue: <a href="https://wiki.csswg.org/spec/css3-ui#issue-52">52</a> Implementation handling of 'resize' on ::before generated content is buggy and not interoperable (See: <a href="http://dabblet.com/gist/ab432c3f6a8f672cd077">resize on :before test case</a>). A few possible resolutions: explicitly specify :resize does not apply to generated content (result undefined), (result no effect - would be at risk) or that it does apply (not interop, would be at risk).
511
+
The 'resize' property does not apply to generated content, the result is undefined.
512
+
513
+
Note: the 'resize' property may apply in the future if there is implementation of <a href="http://dev.w3.org/csswg/css-pseudo/#CSSPseudoElement-interface">Interface CSSPseudoElement</a>.
562
514
563
515
When an element is resized by the user,
564
-
the user agent uses a resize function
565
-
based on the unresized computed width and height
566
-
as part of determining the used width and height.
567
-
The element's contents (and surroundings) are reformatted as necessary.
568
-
569
-
The resize function introduces a step in width/height calculations and formatting
570
-
as described in <a href="http://www.w3.org/TR/CSS21/visudet.html">chapter 10 of CSS2.1</a>.
571
-
Specifically the following step is inserted between steps 1 and 2
572
-
of the algorithm in <a href="http://www.w3.org/TR/CSS21/visudet.html#min-max-widths">section 10.4</a>
573
-
and <a href="http://www.w3.org/TR/CSS21/visudet.html#min-max-heights">10.7</a> in CSS2.1 [[!CSS21]],
574
-
where [dimension] is 'width' for 10.4 and 'height' for 10.7.
575
-
<blockquote><p style="text-indent:-2em">
576
-
1b. If the resize [dimension] function is in use,
577
-
then the tentative used [dimension] is computed with that function,
578
-
and the rules above are applied again,
579
-
but this time using the result of that function as the computed value for '[dimension]'.
580
-
</blockquote>
581
-
582
-
Issue: <a href="https://wiki.csswg.org/spec/css3-ui#issue-47">47</a> There is evidence that implementations support resize by setting inline style width and height on the element, and there is <a href="http://lists.w3.org/Archives/Public/www-style/2014Dec/0177.html">a proposal to specify that behavior explicitly</a> (<a href="https://lists.w3.org/Archives/Public/www-style/2014Dec/0063.html">previous proposal</a>).
583
-
584
-
With regard to interactivity and the Document Object Model (DOM),
585
-
the resize function on an element lasts the lifetime of the element,
586
-
however, if the computed 'resize' property itself is altered
587
-
(e.g. via pseudo-class change or via DOM manipulation),
588
-
then the resize function is reset to
589
-
using the element's unresized computed width and height.
516
+
the user agent sets
517
+
the 'width' and 'height' properties
518
+
to px unit length values of the size indicated by the user,
519
+
in the element’s 'style' attribute DOM,
520
+
replacing existing property declaration(s) if any,
521
+
without ''!important'' if any.
590
522
523
+
If an element is resized in only one dimension,
524
+
only the corresponding property is set, not both.
591
525
592
526
The precise direction of resizing
593
527
(i.e. altering the top left of the element or altering the bottom right)
@@ -598,15 +532,25 @@ and 'bottom' properties,
598
532
whether the language of the element is right-to-left etc.
599
533
The precise direction of resizing is left to the UA to properly determine for the platform.
600
534
601
-
The user agent should allow the user to resize the element with no other constraints than what is imposed by min-width and max-width.
602
-
(at risk due since <a href="http://lists.w3.org/Archives/Public/www-style/2014Dec/0063.html">only Firefox currently supports this</a>).
603
-
604
-
Issue: <a href="https://wiki.csswg.org/spec/css3-ui#issue-53">53</a> is related to the resize constraints being at risk.
535
+
The user agent should allow the user to resize the element
536
+
with no other constraints than what is imposed by
537
+
'min-width', 'max-width', 'min-height', and 'max-height'.
@@ -671,17 +615,14 @@ in the inline progression direction of its block container element ("the block")
671
615
that has 'overflow'
672
616
other than ''visible''.
673
617
674
-
Issue: <a href="https://wiki.csswg.org/spec/css3-ui#issue-68">68</a> Should text-overflow apply even when overflow is visible? Possible resolutions: Apply text-overflow regardless of overflow, or consider reverting
Text can overflow for example when it is prevented from wrapping
678
619
(e.g. due to '<code class="lang-css">white-space: nowrap</code>'
679
620
or a single word is too long to fit).
680
621
Values have the following meanings:
681
622
682
623
<dl data-dfn-for="overflow" class="valuedef">
683
624
<dt><dfn>clip</dfn></dt>
684
-
<dd>Clip inline content that overflows. Characters may be only partially rendered.</dd>
625
+
<dd>Clip inline content that overflows its block container element. Characters may be only partially rendered.</dd>
685
626
686
627
<dt><dfn>ellipsis</dfn></dt>
687
628
<dd>
@@ -699,6 +640,8 @@ for bidi purposes.
699
640
</dd>
700
641
</dl>
701
642
643
+
Note: The "[...] its block container element" detail of the "clip" value definition is at risk pending implementation and potentially web compatibility feedback.
644
+
702
645
Note: The <<string>> value, and the 2-value syntax "{1,2}"
@@ -990,6 +931,9 @@ then only the end ellipsis/string should be rendered.
990
931
<!-- got this far reformatting lines -->
991
932
This property specifies the type of cursor to be displayed for the pointing device
992
933
when within the element's border-box.
934
+
935
+
The cursor property does not apply over native user-agent controls such as scrollbars, resizers, or other native UI widgets e.g. those that may be used inside some user agent specific implementations of form elements.
936
+
993
937
Values have the following meanings:
994
938
995
939
image cursors
@@ -1043,7 +987,7 @@ general purpose cursors
1043
987
<dl>
1044
988
<dt style="cursor:auto">auto</dt>
1045
989
<dd>The UA determines the cursor to display based on the current
1046
-
context.
990
+
context, specifically: auto behaves as 'text' over text, and 'default' otherwise.
1047
991
1048
992
<div>
1049
993
Issue: <a href="https://wiki.csswg.org/spec/css3-ui#issue-48">48</a> There are reports that this description of cursor: auto is insufficient and not interoperable. Current plan: restrict the auto value to handling things that cannot be described by the UA stylesheet, pending detailed proposal, likely based on <a href="https://lists.w3.org/Archives/Public/www-style/2013Jan/0275.html">David Baron's proposal</a>.
@@ -1288,6 +1232,16 @@ there is no need to refocus the same element.
1288
1232
1289
1233
If no element matches the selector,
1290
1234
the user agent automatically determines which element to navigate the focus to.
1235
+
1236
+
If the focus is navigated to an element
1237
+
that was not otherwise focusable,
1238
+
it becomes focusable
1239
+
only as the result of this directional navigation,
1240
+
and the <css>:focus</css> pseudo-class matches the element
1241
+
while it is focused as such.
1242
+
1243
+
Note: there were other options under consideration for such "not otherwise focusable" elements, including focus to the next otherwise focusable element in the document tree (including descendants of such a not otherwise focusable element). Input on such other options is welcome and explicitly solicited, especially from implementation experiences and author experience using the directional navigation properties in their content.
1244
+
1291
1245
</dd>
1292
1246
<dt><target-name></dt>
1293
1247
<dd>
@@ -1372,11 +1326,9 @@ There is documentation of
1372
1326
<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/ime-mode">non-interoperability of these implementations.
1373
1327
</a>
1374
1328
1375
-
Implementations must not add support for the ime-mode property.
1376
-
1377
-
Implementations should drop support for it as soon as possible.
1329
+
User agents should not support the <css>ime-mode</css> property.
1378
1330
1379
-
Authors must not use the ime-mode property
1331
+
Authors must not use the ime-mode property.
1380
1332
1381
1333
Users may use the ime-mode property only for repair use-cases where they have to work around bad sites and legacy implementations, e.g. with a user style sheet rule like:
1382
1334
<div class="example">
@@ -1391,6 +1343,15 @@ This example CSS may be placed into a user style sheet file to force password in
1391
1343
1392
1344
This specification deliberately does not attempt to document the functionality of legacy ime-mode implementations nor what they specifically support because it does not make sense to pursue or recommend any such path.
1393
1345
1346
+
<div class="note">
1347
+
Note: there are several [[HTML5]] features which authors should use to provide information to user agents that allow them to provide a better input user experience:
and <code>type</code> attributes of the input element
1353
+
</ul>
1354
+
</div>
1394
1355
1395
1356
1396
1357
<hr title="Separator from footer">
@@ -1429,7 +1390,9 @@ Thanks to feedback and contributions from
1429
1390
<span class="h-card">Peter Linss</span>,
1430
1391
<span class="h-card">Kang-Hao Lu</span>,
1431
1392
<span class="h-card">Masayuki Nakano</span>,
1393
+
<span class="h-card">Mats Palmgren</span>,
1432
1394
<span class="h-card">Brad Pettit</span>,
1395
+
<span class="h-card">François Remy</span>,
1433
1396
<span class="h-card">Florian Rivoal</span>,
1434
1397
<span class="h-card">Andrey Rybka</span>,
1435
1398
<span class="h-card">Simon Sapin</span>,
@@ -1474,29 +1437,7 @@ implemented features.
1474
1437
<h3 class="no-num" id="changes-list">List of substantial changes</h3>
1475
1438
1476
1439
<ul>
1477
-
<li><css>::value</css> pseudo-element. Added detail about which properties apply to the ::value pseudo-element.
1478
-
1479
-
<li>'text-overflow' property - added <<string>> value and 2 values option, both explicitly at risk.
1480
-
1481
-
<li>'nav-up', 'nav-right', 'nav-down', and 'nav-left' properties removed from the "at risk" list.
1482
-
1483
-
<li>'nav-index' dropped due to lack of implementation interest.
1484
-
1485
-
<li>'cursor' values "grab" and "grabbing" added per multiple interoperable implementations.
1486
-
1487
-
<li>Numerous UI selectors moved to Selectors4 and CSS Pseudo module.
1488
-
1489
-
<li>add 'caret-color' property, but at risk.
1490
-
1491
-
<li>'ime-mode' explicitly obsoleted.
1492
-
1493
-
<li>'outline-offset' define negative values.
1494
-
1495
-
<li>'icon' property dropped.
1496
-
1497
-
<li>'content' property 'icon' value dropped.
1498
-
1499
-
<li>XForms-only pseudo-elements dropped.
1440
+
<li><css>::value</css> and <css>::choices</css> pseudo-elements have been dropped due to insufficient implementer interest. As they were published in a previous CR draft, they may be re-added in a future level if implementers show interest and intent to implement.
0 commit comments