-
Notifications
You must be signed in to change notification settings - Fork 27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
input[list]
maps to invalid combobox
#349
Comments
input[list]
maps to invalid combobox
This issue is inaccurate, and thus I'm closing it. If you follow the mapping for combobox over to CORE AAM, the combobox role already takes care of the Furthermore, the requirements of the ARIA spec are for authors building custom ARIA comboboxes. To assert that authors need to explicitly declare |
I'm glad this is not a problem but I'm struggling a bit understanding the how and why of it. I feel I need a bit more explanations and pointers 😕
That's a bit I fail to follow. I am not super fluent with reading the Core AAM… The closest thing I'm finding that could relate to that is the first point of General rules for states mapping stating
But then the definition of managed states makes this feels a bit circular:
So, user agents must compute "managed state" and "managed states" are state controlled by user agents. That doesn't help me figure out whether The State and Property Change Events for
The
I'm also not sure I understand that. I get it that if an author wants to build a combobox (or any other role) with But then, I also thought that "native" comboboxes (or other roles) built by user agents also need to have all the required states and properties, … I'm reading your answer as implicitly saying that user agent built components are not required to follow ARIA specs. Which sounds so weird that I think I'm completely missing the point 🤔 Digging through Chromium sources, I've found several places where We've been running some tests with a colleague, between a "native" text field combobox: <input type="text" list="foo">
<datalist id="foo">
<option value="foo">foo</option>
<option value="bar">bar</option>
</datalist> and the ARIA example one. The later is built with an Now, the point is that both NVDA and Jaws behave differently on these. Both of them announce the "ARIA example" one saying it's "collapsed" but don't say anything similar about the "native" one. It doesn't means the native one is bad, of course. But it shows that these are handled differently, and especially when it comes to their expanded/collapsed state. So they seem to handle I'm actually having the same question (I don't dare say "problem" now 😅 ) for <select>
<option>Foo</option>
<option>Bar</option>
</select> This has a role of Does that piece of HTML builds a valid |
Thank you for your detailed response, I think I better understand where the disconnect is here. I likely am not answering all your questions with what follows, and truthfully you have a lot of questions that would require far more time than I am able to spend. At a high level I will say this, I think what HTML AAM can do here is make mention of what properties browsers should (or 'may' - as not all the platform apis are exactly the same, and the expectations for each can be different) be exposing with certain roles. This clarification would be in alignment with adding some clarity of what "Use WAI-ARIA mapping" means - issue #122. As you should have also noticed, the ARIA specification makes mention of far more than
My statement was specifically about authors. I made no assertions about requirements for user agents, so you have misunderstood/assumed something I was not stating. My point with my previous comment was that if an author is building a custom ARIA HTML AAM states to use the
|
Thanks for the answer, I understand a bit better how these documents articulate. A few more questions and precisions…
Maybe I should have given more context on my question… As a tool vendor for the automated checker Alfa, we do have a rule that check that elements with role have all their required states and property (https://alfa.siteimprove.com/rules/sia-r16). This expands a bit on the corresponding ACT rules (https://act-rules.github.io/rules/4e8ab6) The ACT rule only checks elements with a We had quite a few discussions (internally) as to whether we should indeed test native elements or just rely on the UA to correctly build these elements. We end up deciding to keep the rule as is precisely because it let us detect bugs in UAs or in specs. Typically, we've figured out that #314 was a problem with the AAM (6 months after it was found in the AAM, but still 🤷 ) Recently, we've been reported that we were flagging an I guess I was wrong. If I'm summing up the discussion correctly, it would be that the AAM is to be seen as the minimum mappings that UA should do; but they may do more for the stuff that is not specified (i.e., the AAM is not exclusive). That is, as an UA writer, if I decide to map That is freaking me out a bit 😕 But I guess I'll have to find a way around it… |
re: aria-haspopup not being required - it's not required to be declared by an author, but it is very much necessary for a combobox. The reason it is not required by an author is because the combobox role has an implicit aria-haspopup=listbox. At the platform level - as mentioned under MSAA/IA2 & ATK there is a state for haspopup (again note, aria-expanded is handled under the combobox role here too.) So, shifting again to user agents - it would be highly expected for a UA to make sure this information was implemented in their combobox... Re: telling authors to add ARIA attributes to native elements - SiteImprove is apparently currently flagging Re: the Alfa checks expanding on the ACT rule only checking elements with a role attribute - I'd submit that Alfa may be going somewhere it shouldn't here. An author shouldn't get flagged for an issue with an HTML element(s) - unless it is a potential warning about a possible short coming with the accessibility support for the element in question. The information is here, in core aam, and in ARIA for how these elements/roles/attributes are standardized. Where rules like this can be helpful, though, is in making sure that web authors are not using ARIA incorrectly and thus potentially mucking up a native implementation. (this issue was helpful in making me realize ARIA in HTML has a gap here w3c/html-aria#364) Re: issue 314 - that is a gap with the spec matching reality. The attribute and noted aria-* referenced in that issue have a direct one to one attribute correlation and need to be called out here - which is different from the issue you raised here. It's already covered by the combobox role definition in core aam / requirements of ARIA (also yes, 6 months for that issue... PRs are always welcome, as otherwise things get worked on as time permits....) Re: your summary, specifically "it's up to me as a UA writer" Your "well sort of" is the key there. Again, here HTML AAM is pointing to Core AAM. Core AAM is defining mappings for the role, and all the aria-* attributes. THe ARIA specification outlines the requirements for creating a combobox - so, as a UA writer, you follow the requirements, and if you notice that there is a gap in a native implementation that is not made by a web author, then that's a gap with the (in this case) browser. Not an author error. |
@scottaohara Once again thank you for your patience and your answers.
Apologies for my poor choice of words (and emoji). |
appreciate the follow up, @Jym77 and thank you for the conversation. |
<input type="text" list="foo">
maps toHowever,
combobox
require anaria-expanded
state (both in ARIA 1.1 and 1.2) which is not set here.This result in such inputs with suggestion list mapping to invalid
combobox
😞 and authors need to manually handle thearia-expanded
state (and often forget it just because they don't know about it…)I'm however not sure that the expansion can be automagically set (not finding anything obvious in HTML specs).
The text was updated successfully, but these errors were encountered: