- From: Laurence Lewis <laurence.r.lewis@gmail.com>
- Date: Fri, 13 Dec 2024 13:47:07 +1000
- To: Jonathan Cohn <jonathan.c.cohn@icloud.com>
- Cc: Ivan Rodrigues <ivan.joel.rodrigues@gmail.com>, ashraf aleem <ashraf.aleem@gmail.com>, w3c-wai-ig@w3.org, wai@w3.org
- Message-ID: <CAOdagGmSH-JYj40j0McpAe+u1-qj5icx0K9YwhnkYuX-LWFhnw@mail.gmail.com>
I retested and agree with Johnathan it is a NVDA thing. NVDA seems very buggy. Tested using - JAWS 2023 on Chrome 131.0.6778.140 - JAWS 2023 on Firefox 133.0.3 - NVDA 2024.4.1 on Chrome 131.0.6778.140 - NVDA 2024.4.1 on Firefox 133.0.3 - VoiceOver on iOS Safari 18.1.1 I had a play with naming variations for the radios. https://codepen.io/Deafinitive/live/ogvzOoy/aa5e7bb89248e03089573245ef5a575c Cheers Laurence Lewis Accessibility Senior Specialist - Telstra On Fri, 13 Dec 2024 at 11:48, Jonathan Cohn <jonathan.c.cohn@icloud.com> wrote: > I believe this is a chrome issue, and not a screen reader issue. Try the > same table in Firefox and see if it behaves as you expect. > Sent from my iPhone > > On Dec 12, 2024, at 12:04 PM, Ivan Rodrigues < > ivan.joel.rodrigues@gmail.com> wrote: > > > Hi Mohammed, > > First of all, thanks for your answer! > > I already tried applying the radiogroup role in the tr and indeed it > creates a context of radio grouping, but we loose the table context then... > > That's exactly what I am trying to achieve: have both the radio group > context and table row/column context, but I can't find a way to do so. > > Applying multiple roles (radiogroup row) also doesn't work because the > following roles act like fallbacks (only one role can be set for an > element), unfortunately. > > Therefore my question remains open. I think this is currently a missing > feature in the web accessibility domain. Any idea who I could contact to > bring this question/feature request more attention? > > Kind regards, > > Ivan Rodrigues > > > Le jeu. 12 déc. 2024, 16:20, ashraf aleem <ashraf.aleem@gmail.com> a > écrit : > >> Hi, >> As you suggested >> >>> *technical constraints prevent us from drastically changing the existing >>> HTML structure.* >> >> >> >> https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/radiogroup_role >> Please look into role = "radiogroup" on the <tr>, check how it reads with >> screen readers. >> >> I have seen examples of using it with <ul>, >> https://www.w3.org/WAI/ARIA/apg/patterns/radio/examples/radio/ >> >> Thanks, >> Ashraf Mohammad >> >> On Thu, Dec 12, 2024 at 8:33 AM Ivan Rodrigues < >> ivan.joel.rodrigues@gmail.com> wrote: >> >>> Dear W3C Team, >>> >>> >>> I hope this message finds you well. I am reaching out via these email >>> addresses because I am unsure who the most appropriate contact would be for >>> my query. I am currently redesigning our web application at work to improve >>> its accessibility, and I have encountered an issue related to HTML tables >>> and screen reader behavior. >>> >>> Our application contains numerous HTML tables. One of them has the >>> following (simplified for the example) structure: >>> <image.png> >>> >>> >>> The table is straightforward, with the last column containing a "group" >>> of radio buttons. >>> Below is its HTML structure: >>> <table> >>> <thead> >>> <tr> >>> <th scope="col">Id</th> >>> <th scope="col">Name</th> >>> <th scope="colgroup" colspan="2">Actions</th> >>> </tr> >>> </thead> >>> <tbody> >>> <tr> >>> <td>1</td> >>> <td>Watch</td> >>> <td> >>> <input >>> type="radio" >>> value="A" >>> aria-label="Choice A" >>> id="product-1-A" >>> name="product-1" >>> /> >>> <label aria-hidden="true" for="product-1-A"> Label A </label> >>> </td> >>> <td> >>> <input >>> type="radio" >>> value="B" >>> aria-label="Choice B" >>> id="product-1-B" >>> name="product-1" >>> /><label aria-hidden="true" for="product-1-B"> Label B </label> >>> </td> >>> </tr> >>> <tr> >>> <td>2</td> >>> <td>Tablet</td> >>> <td> >>> <input >>> type="radio" >>> value="A" >>> aria-label="Choice A" >>> id="product-2-A" >>> name="product-2" >>> /><label aria-hidden="true" for="product-2-A"> Label A </label> >>> </td> >>> <td> >>> <input >>> type="radio" >>> value="B" >>> aria-label="Choice B" >>> id="product-2-B" >>> name="product-2" >>> /><label aria-hidden="true" for="product-2-B"> Label B </label> >>> </td> >>> </tr> >>> </tbody> >>> </table> >>> >>> I recreated the example on Stackblitz so you are able to reproduce it >>> and experiment with it as well: >>> https://stackblitz.com/edit/accessibility-html-table-with-radio-buttons >>> <https://stackblitz.com/edit/accessibility-html-table-with-radio-buttons> >>> >>> >>> The issue arises when the table is interpreted by screen readers. For >>> instance, when navigating to the second radio button in the second row >>> (Choice B), NVDA announces: >>> <image.png> >>> "*Choice B row 2 Actions column 4, Choice B radio button not checked >>> one out of one.*" >>> >>> The "one out of one" is incorrect; it should announce "*two out of two*" >>> since it is part of a radio group formed using the "name" attribute. The >>> expected behavior is for NVDA (or any screen reader) to recognize this and >>> correctly announce the grouping based on the "name" attribute. >>> >>> I know that this could be resolved by wrapping the radio buttons in a >>> <fieldset> tag, but unfortunately, technical constraints prevent us from >>> drastically changing the existing HTML structure. >>> >>> >>> I would like to submit this issue as a bug or feature request but am >>> unsure whom to contact. Should this be directed to the NVDA development >>> team, W3C (as it relates to HTML specifications), or another organization? >>> >>> I would greatly appreciate your guidance on redirecting this query to >>> the appropriate party. >>> >>> Thank you for your time and assistance. >>> >>> >>> >>> Kind regards, >>> >>> Ivan Rodrigues >>> >>>
Received on Friday, 13 December 2024 03:47:27 UTC