Skip to content
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

Update: add mapping tables for customizable select #2369

Open
wants to merge 10 commits into
base: main
Choose a base branch
from

Conversation

scottaohara
Copy link
Member

Initial draft of select / button as child of a select mappings.

Test, Documentation and Implementation tracking

Once this PR has been reviewed and has consensus from the working group, tests should be written and issues should be opened on browsers. Add N/A and check when not applicable.

  • "author MUST" tests:
  • "user agent MUST" tests:
  • Browser implementations (link to issue or commit):
    • WebKit:
    • Gecko:
    • Blink:
  • Does this need AT implementations?
  • Related APG Issue/PR:
  • MDN Issue/PR:

Initial draft of select / button as child of a select mappings.
Copy link

netlify bot commented Nov 1, 2024

Deploy Preview for wai-aria ready!

Name Link
🔨 Latest commit eb96641
🔍 Latest deploy log https://app.netlify.com/sites/wai-aria/deploys/67b4d2c03100c9000859e7b6
😎 Deploy Preview https://deploy-preview-2369--wai-aria.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

scottaohara added a commit that referenced this pull request Jan 29, 2025
closes #2382
and is related to #2344 / #2369 

This PR adds aria-valuetext as a supported property for the combobox role.

the `aria-valuetext` definition is slightly updated to indicate that the attribute can be used on other supported roles.  I'm not sure if we want to do any further updates to that section in this PR - or if that really should be handled in a larger PR to resolve #711
Copy link

@mfreed7 mfreed7 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

<p>
In the event that invalid elements are present, but are empty, or are only used as wrapping elements for the valid descendent element's of a select, then user agents SHOULD ignore these elements in the accessibility tree.
</p>

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In our private chat, you provided a few example bits of HTML and what happens for each case. It was really helpful - I wonder if it's ok to include those as non-normative examples here?

<p>
The calculated role of the customizable `select` element's popup picker is a `listbox`, by default.</p>
<p>
If authors render invalid elements, in regard to the select element's content model, as descendants of the select element, and those invalid elements result in accessible objects being present as siblings in the accessibility tree to the valid descendent elements of the select, then user agents SHOULD expose the popup picker with the role of a modeless dialog.</p>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of "if authors render", would it be more clear to say "if authors include" or even "if invalid elements (according to the select element's content model) are placed as descendants of the select element, and..."?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, is "the role of a modeless dialog" a thing? If so, great. But should that be "with the role of dialog"?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks @mfreed7 - role of dialog in the modeless state is really what i should have said there.

for the first comment, i said "render" because i would rather flags not be raised / repairs not be made if someone includes an invalid element, but it is set to display: none. but i'm fine with your suggested wording change as well.

<p>
In the event invalid elements are present, but are not rendered, then no user agent role repair is necessary.</p>
<p>
In the event that invalid elements are present, but are empty, or are only used as wrapping elements for the valid descendent element's of a select, then user agents SHOULD ignore these elements in the accessibility tree.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if "are empty" is precise? What if they contain only whitespace? For example, you said this:

<main><article></article</main>  <!-- ignore these cause they are empty -->

but I'd think maybe this should also be ignored?

<main>    <article>    </article>    </main>  <!-- ignore these cause they are "empty" -->

it does not serve as a submit, reset, or generic 'button' type. Rather,
its purpose is directly tied to the rendering of a customized select
serving as the visible indicator/styleable node to serve as the
invoking element for the select's listbox popup.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you want to mention that the UA stylesheet applies interactivity: inert to this button, to ensure that this comment is true (modulo developer shenanigans)?

@scottaohara scottaohara marked this pull request as ready for review February 18, 2025 18:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants