Spec: Split into 4 docs for 4 phases, give parity with ARIA#62
Spec: Split into 4 docs for 4 phases, give parity with ARIA#62minorninth merged 3 commits intoWICG:gh-pagesfrom
Conversation
| attribute DOMString? roleDescription; | ||
|
|
||
| // Accessible label and description. | ||
| attribute DOMString? label; |
There was a problem hiding this comment.
Urgh, I thought we were going to get away from the whole labelledBy/labeledBy controversy here 😞
There was a problem hiding this comment.
Urgh. Not sure what to do, there's no way to win.
There was a problem hiding this comment.
I recall we discussed labelElement instead.
There was a problem hiding this comment.
I didn't like making this the one glaring exception in otherwise very
straightforward translations from the ARIA attribute names. Any time we
deviate it's just adding confusion for users.
I guess labeledBy because it's different from ARIA but close enough that
it will confuse people.
I guess my preference would be to try to come up with a consistent way to
modify all of the relationship attributes, then, rather than making
labeledBy an exception.
Since it's a reference to an AccessibleNode and not a DOM element, maybe labelNode instead of labelElement?
We could add Node or Nodes to all of them to help convey whether they take a single reference or an array.
labelNode
descriptionNode
activeDescendantNode
controlledNodes
detailsNode
errorMessageNode
flowToNode
ownedNodes
| and null otherwise. The validity of a property valid is specified in | ||
| greater detail below. | ||
| </p> | ||
| <p> |
There was a problem hiding this comment.
ARIA should win, as per my comment on the explainer.
There was a problem hiding this comment.
@alice wrote:
~"ARIA wins"
Alice, which part of the explainer are you referencing? I recall us agreeing any value defined in AOM would override any content attribute (ARIA or otherwise).
| Nearly all accessibility properties on the AccessibleNode interface have an | ||
| equivalent ARIA attribute. When they do, the mappings are very straightforward. | ||
| This table shows the mappings and indicates the ones that have different semantics | ||
| explained below. |
There was a problem hiding this comment.
This is awkwardly worded: perhaps "there's a 1:1 correspondence between the set of properties on AccessibleNode and the list of valid ARIA attributes from the WAI-ARIA 1.1 spec."?
|
|
||
| <table> | ||
| <caption> | ||
| <dfn>Accessibility property table</dfn> |
There was a problem hiding this comment.
I think the diff is a little confusing in GitHub. The table is complete, if you
expand above this it should make sense.
| <code>label</code> and <code>description</code> | ||
| attributes directly if you want those to change. | ||
| Upon setting a property of AccessibleNode, no validation is | ||
| done. The user-provided value is simply stored. This is to |
There was a problem hiding this comment.
Is there a reason to do validation at read time rather than write time? Where does the invalid value live? Is it simply hidden from the accessor?
There was a problem hiding this comment.
Yes, I think that's better for performance. We can always cache it at read
time, but the purpose is to ensure that if an author sets AccessibleNode
properties and doesn't try to read them back and accessibility is never enabled,
we don't waste any time even trying to validate them.
spec/phase2.html
Outdated
| Phase 2: Accessible Actions | ||
| </h2> | ||
| <p> | ||
| In this phase, we extent AccessibleNode so that it's also an |
spec/phase2.html
Outdated
| </pre> | ||
| <p> | ||
| Accessibility input events are needed for two reasons. | ||
| First, because it's possible to create AccessibleNodes |
spec/phase2.html
Outdated
| <th>event name</th> | ||
| <th>type</th> | ||
| <th>valid roles</th> | ||
| <th>fallback behavior</th> |
There was a problem hiding this comment.
We haven't discussed what fallback behaviour means before this table. Maybe "(see below)"?
| <code>"scrollbar"</code>, | ||
| <code>"slider"</code> | ||
| </td> | ||
| <td>Change value of INPUT or TEXTAREA element</td> |
There was a problem hiding this comment.
This may need a little more explanation - how would a TEXTAREA be acting as a scrollbar or slider?
| <td><code>"accessiblesetvalue"</code></td> | ||
| <td><code>AccessibleSetValueEvent</code></td> | ||
| <td> | ||
| <code>"scrollbar"</code>, |
There was a problem hiding this comment.
Yes, I haven't updated the other phases much yet, I just moved them to
separate files.
cookiecrook
left a comment
There was a problem hiding this comment.
Did you make any substantive changes to Phases 2-4? If so, it's not obvious since those now show up as entirely new files .
| </section> | ||
| <section id="inclusion"> | ||
| <h2>Criteria for Inclusion</h2> | ||
| <p>The first version of this specification is not intended to be complete. It is currently impossible to make some web features accessible, so the primary goal is to resolve immediate needs quickly for existing, inaccessible web interfaces. The specification editors are purposefully deferring many useful ideas in order to maintain a realistic timeline for highest priority features.</p> |
There was a problem hiding this comment.
Minor nit: "web" as an adjective should remain lower case like this: "web page", etc. However, as the proper noun ("the Web" or "the World Wide Web") should always be capitalized. It's pretty common for people to mis-interpret this as meaning all instances of the word "web" should be capitalized. Most uses are adjectives and should not be capitalized. 😉
There was a problem hiding this comment.
Sorry, I should have clarified, but I deliberately did not make any changes
to phases 2 - 4 in this patch. I just moved them.
| <code>Element</code>. | ||
| </p> | ||
| <pre class="idl"> | ||
| partial interface Node { |
There was a problem hiding this comment.
Didn't we have a long-term plan to use this on text nodes, too?
There was a problem hiding this comment.
Yes, but not for phase 1
| "grid", | ||
| "gridcell", | ||
| "group", | ||
| "heading", |
There was a problem hiding this comment.
Let's correct this errata from ARIA... "image"
There was a problem hiding this comment.
Hmmm, I'm not so sure we want to use a different lexicon than ARIA here.
Is it worth it to confuse authors and force authors who try to make glue
code to translate things?
| attribute double? rangeMax; | ||
| attribute double? rangeStep; | ||
| attribute double? valueNow; | ||
| attribute double? valueMin; |
There was a problem hiding this comment.
At the F2F, we changed these to rangeValue, etc because they were more clear. Is the goal just to reduce author adoption complexity despite the odd names of some ARIA properties?
There was a problem hiding this comment.
Yeah, that's exactly the idea.
I guess some minor renaming could be okay, but not having a 1:1
correspondence significantly complicates this phase.
| attribute boolean? pressed; | ||
|
|
||
| // Control values. | ||
| attribute DOMString? value; |
There was a problem hiding this comment.
At the F2F, we normalized all variants of value (besides rangeValue) to a single "value" property. What's the need for a valueText property if we already have value. Also, I don't think we can remove value because it would be required for different field types (date, tel, etc). valueText appears to be future-limiting for the sole purpose of matching ARIA.
There was a problem hiding this comment.
That was when we were hoping to expose the computed tree.
Maybe in the computed tree we can just expose one value.
Now that we've separated out the ideas of modifying accessibility
attributes in the DOM and getting their computed values, it makes
far more sense for Phase 1 to have parity with ARIA.
Parity with ARIA frees us up to not have to clearly define the semantics
for all of these attributes. Sure, it'd be nice to have a single "value", but
then what do you do if someone specifies both "value" and valueNow?
What about "value" and valueText?
My thinking now is that AccessibleNode in Phase 1 - 3 will be a strict superset of
ARIA, but then the computed accessible properties in Phase 4 can resemble the
native tree much more - i.e. "name", "description", etc.
| @@ -308,11 +392,21 @@ <h3> | |||
| <td><code>AccessibleNode</code></td> | |||
| <td><code>aria-activedescendant</code></td> | |||
| <tr> | ||
| <td><code>autocomplete</code></td> | ||
| <td><code>enum { "both", "inline", "list", "none" }?</code></td> | ||
| <td><code><nobr>aria-autocomplete</nobr></code></td> |
| @@ -384,20 +497,40 @@ <h3> | |||
| <td><code><nobr>aria-invalid</nobr></code></td> | |||
| </tr> | |||
| <tr> | |||
| <td><code><nobr>aria-readonly</nobr></code></td> | ||
| </tr> | ||
| <tr> | ||
| <td><code>relevant</code></td> |
| </tr> | ||
| <tr> | ||
| <td><code>valueText</code></td> | ||
| <td><code>DOMString?</code></td> |
There was a problem hiding this comment.
IMO, this should be value for greater forward compatibility.
No description provided.