Relevant time constraints or deadlines: April 30th, 2017
This review is requested as we prepare to transition to CR. Also, if you could ping me an email to let me know when you're done, it will help me keep track of everything.
We'd prefer the TAG provide feedback as (please select one):
open issues in our Github repo for each point of feedback
open a single issue in our Github repo for the entire review
leave review feedback as a comment in this issue and @-notify [github usernames]
One comment @travisleithead noticed, in our breakout session at the TAG meeting, is that the "Kind of content" column in the first table in 3. Allowed ARIA roles, states and properties said "(work in progress)", which didn't quite seem right for something that's about to go to CR. However, we then noticed that this column is no longer present in the Editor's Draft, and concluded that it made more sense to review the editor's draft.
Thanks you for submitting the review request. Apologies for taking so much time to look into this, hope this isn't too late for the deadline.
Pre-warning: This was reviewed by @travisleithead and me during Tokyo F2F, both not being the most literate about the dependency spec ARIA. There might be misunderstandings about what the original intention is - we did not have time to read the entire ARIA spec throughly before doing this review.
The first pass review comment list is a bit long, so we're providing it in bulletpoint format to make it a bit easier to follow.
We think it would be better to remove keygen. This is a element that we have discussed in the past and decided to obsolete.
input type=datetime has not been well received, so we would like to suggest replacing that with datetime-local which has better implementation support.
Following item 2, input type=datetime-local should have probably be a grid role, with each data component being maybe a spinbutton? We aren't sure this would be the best option, since some of the input is text - but the behavior of the individual data fields behave closer to a spinbutton in the implementations we have tested on, which is the rationale for this suggestion. input type="date", input type="month", input type="week", and input type="time" most likely fall under the same rule.
a element without a href should be a bit more specific. When this is used as a anchor (for page internal navigation, using the name property) this is probably something that should have a landmark role.
The likelihood of SVG being a graphic component is probably higher than it being a application or document from the user's perspective, so would it make sense to use img as the implicit role?
img with alt="" might be better suited under a presentation role.
meter seems to match the progressbar role reasonably well, any reason why this was not chosen?
input type=submit has navigation behavior (although it depends on it being in a form) - this seems inconsistent with button element's role definition. Link might be needed as as potential role.
It seems like input type=range can also be a spinbutton.
Are we okay with not having any roles input type=password for password and input type=color for color? Password seems like it will happen in ARIA 2.0 so the dependency stands. Also, input type=file has no role, are we fine with this?
hr role=separator has the role presentation. Should only be implicit seperator in the event it is focusable, as per ARIA definition?
input type=range could be a spintbutton too. It seems to qualify against the rules defined there, at least based on some quick testing.
input type=hidden is not covered by the hidden property entry at the bottom of the table, and should probably get a aria-hidden.
Small nit: possibly to make the table a bit shorter input type=text, with no list attribute, input type=tel, with no list attribute, input type=url with no list attribute could be merged to make the table length a bit more bearable.
input type=number might not be spinbutton. The bit that concerns me is that spinbutton assumes discrete values, but number does floats with no limit by default. That is not particularly discrete unless min, max, and ideally step is specified. (IEEE754 does have a precision limit so no stepping is still discrete up to the precision the underlying floating point type allows)
Notes about ARIA:
Unless spinbutton is a name that needs to stay for legacy reasons, there might be slightly more friendlier options in terms of naming.
Combobox doesn't quite match any web widget's behavior, is there a necessity for keeping this? Legacy reasons?
Comment by @stevefaulkner Apr 28, 2017 (See Github)
The ARIA in HTML spec does not define the role/state/property
mappings/implementations in browsers, these are defined in
HTML Accessibility API Mappings 1.0 https://w3c.github.io/html-aam/
as a consequence many of the comments provided are relevant to that
specification, not to ARIA in HTML which confines itself to authoring
requirements (which are expressed in conformance checking tools)
Thanks you for submitting the review request. Apologies for taking so much
time to look into this, hope this isn't too late for the deadline.
Pre-warning: This was reviewed by @travisleithead
https://github.com/travisleithead and me during Tokyo F2F, both not
being the most literate about the dependency spec ARIA. There might be
misunderstandings about what the original intention is - we did not have
time to read the entire ARIA spec throughly before doing this review.
The first pass review comment list is a bit long, so we're providing it in
bulletpoint format to make it a bit easier to follow.
We think it would be better to remove keygen. This is a element
that we have discussed in the past and decided to obsolete.
input type=datetime has not been well received, so we would like to
suggest replacing that with datetime-local which has better
implementation support.
Following item 2, input type=datetime-local should have probably be
a grid role, with each data component being maybe a spinbutton? We
aren't sure this would be the best option, since some of the input is text
but the behavior of the individual data fields behave closer to a
spinbutton in the implementations we have tested on, which is the
rationale for this suggestion. input type="date", input type="month", input
type="week", and input type="time" most likely fall under the same
rule.
a element without a href should be a bit more specific. When this
is used as a anchor (for page internal navigation, using the name property)
this is probably something that should have a landmark role.
The likelihood of SVG being a graphic component is probably higher
than it being a application or document from the user's perspective,
so would it make sense to use img as the implicit role?
img with alt="" might be better suited under a presentation role.
meter seems to match the progressbar role reasonably well, any
reason why this was not chosen?
input type=submit has navigation behavior (although it depends on
it being in a form) - this seems inconsistent with button element's
role definition. Link might be needed as as potential role.
It seems like input type=range can also be a spinbutton.
Are we okay with not having any roles input type=password for
password and input type=color for color? Password seems like it will
happen in ARIA 2.0 so the dependency stands. Also, input type=file has
no role, are we fine with this?
hr role=separator has the role presentation. Should only be
implicit seperator in the event it is focusable, as per ARIA definition?
input type=range could be a spintbutton too. It seems to qualify
against the rules defined there, at least based on some quick testing.
input type=hidden is not covered by the hidden property entry at
the bottom of the table, and should probably get a aria-hidden.
Small nit: possibly to make the table a bit shorter input
type=text, with no list attribute, input type=tel, with no list
attribute, input type=url with no list attribute could be merged to
make the table length a bit more bearable.
input type=number might not be spinbutton. The bit that concerns
me is that spinbutton assumes discrete values, but number does floats with
no limit by default. That is not particularly discrete unless min, max, and
ideally step is specified. (IEEE754 does have a precision limit so no
stepping is still discrete up to the precision the underlying floating
point type allows)
Notes about ARIA:
Unless spinbutton is a name that needs to stay for legacy reasons,
there might be slightly more friendlier options in terms of naming.
Combobox doesn't quite match any web widget's behavior, is there a
necessity for keeping this? Legacy reasons?
Something we've hit on in further discussion about this (with @travisleithead @cynthia), we note that the HTML Accessibility API Mapping table and the ARIA in HTML notes many elements do not have corresponding roles.
HTML ARIA should view these omissions as a bug to be fixed and introduce roles and states as necessary to completely describe the behavior of the built-in elements. Without this, it is impossible to build Custom Elements to extend the behavior of many built-ins.
Comment by @stevefaulkner Apr 29, 2017 (See Github)
OpenedMar 10, 2017
Hello TAG!
I [Léonie Watson] am requesting a TAG review of:
Further details (optional):
This review is requested as we prepare to transition to CR. Also, if you could ping me an email to let me know when you're done, it will help me keep track of everything.
We'd prefer the TAG provide feedback as (please select one):