WebAIM - Web Accessibility In Mind

E-mail List Archives

Thread: when is a list not a list?

for

Number of posts in this thread: 16 (In chronological order)

From: glen walker
Date: Fri, Feb 25 2022 6:33PM
Subject: when is a list not a list?
No previous message | Next message →

Besides the known issue with CSS list-style:none on the Mac.

I have an ARIA list that theoretically looks good but neither JAWS nor NVDA
recognize it on Firefox or Chrome (and probably other browsers but I didn't
test).

<div role="list" aria-label="my list label">
<div class="one" role="listitem" aria-label="one"></div>
<div class="two" role="listitem" aria-label="two"></div>
<div class="three" role="listitem" aria-label="three"></div>
</div>

Ignore the obvious question of why not use a real <ul>. It's not my code.

The nested <div> elements with role="listitem" don't have any text
content. However, they all have a class that has a background image so
visibly you see a list of images.

Neither JAWS nor NVDA think there's a list. You can't navigate using the L
key. If you arrow down through the DOM, nothing gets read. It's skipped
over. There's no visible text so that's not totally surprising.

However, if I inspect the accessibility properties in Firefox or Chrome
(via the code inspector), the container has a role of list and the children
all have a role of listitem. So the AOM seems ok.

I'm not sure this is a new problem but then I've never run across a list
that was populated with background images. I can replicate it with a real
list with if I have list-style:none. (In the ARIA list above, since
they're just <div> elements, there isn't any implied list style.)

<ul style="list-style: none;">
<li style="background-image:url('some-image.jpg')"></li>
<li style="background-image:url('some-image.jpg')"></li>
<li style="background-image:url('some-image.jpg')"></li>
</ul>

JAWS and NVDA don't recognize that there's a list. Without the
list-style:none, I visibly see three empty bullet points and both JAWS and
NVDA recognize it.

So, can I not have a list that is populated with background images when
there aren't any visible bullets? It doesn't seem to matter if I use real
<li> elements or role="listitem".

From: Aditya
Date: Fri, Feb 25 2022 7:22PM
Subject: Re: when is a list not a list?
← Previous message | Next message →

aria-label on a div seems to be why they are not reading it.

If you were to remove aria-label and use “sr-only” spans inside the list item divs, it might work.



Sent from my iPhone

> On Feb 25, 2022, at 7:33 PM, glen walker < = EMAIL ADDRESS REMOVED = > wrote:
>
> Besides the known issue with CSS list-style:none on the Mac.
>
> I have an ARIA list that theoretically looks good but neither JAWS nor NVDA
> recognize it on Firefox or Chrome (and probably other browsers but I didn't
> test).
>
> <div role="list" aria-label="my list label">
> <div class="one" role="listitem" aria-label="one"></div>
> <div class="two" role="listitem" aria-label="two"></div>
> <div class="three" role="listitem" aria-label="three"></div>
> </div>
>
> Ignore the obvious question of why not use a real <ul>. It's not my code.
>
> The nested <div> elements with role="listitem" don't have any text
> content. However, they all have a class that has a background image so
> visibly you see a list of images.
>
> Neither JAWS nor NVDA think there's a list. You can't navigate using the L
> key. If you arrow down through the DOM, nothing gets read. It's skipped
> over. There's no visible text so that's not totally surprising.
>
> However, if I inspect the accessibility properties in Firefox or Chrome
> (via the code inspector), the container has a role of list and the children
> all have a role of listitem. So the AOM seems ok.
>
> I'm not sure this is a new problem but then I've never run across a list
> that was populated with background images. I can replicate it with a real
> list with if I have list-style:none. (In the ARIA list above, since
> they're just <div> elements, there isn't any implied list style.)
>
> <ul style="list-style: none;">
> <li style="background-image:url('some-image.jpg')"></li>
> <li style="background-image:url('some-image.jpg')"></li>
> <li style="background-image:url('some-image.jpg')"></li>
> </ul>
>
> JAWS and NVDA don't recognize that there's a list. Without the
> list-style:none, I visibly see three empty bullet points and both JAWS and
> NVDA recognize it.
>
> So, can I not have a list that is populated with background images when
> there aren't any visible bullets? It doesn't seem to matter if I use real
> <li> elements or role="listitem".
> > > >

From: glen walker
Date: Fri, Feb 25 2022 7:33PM
Subject: Re: when is a list not a list?
← Previous message | Next message →

There was no aria-label on the real list example and it wasn't read there
either. Not sure why the aria-label would prevent things from being read
anyway. What makes you say that?

On Fri, Feb 25, 2022 at 7:23 PM Aditya via WebAIM-Forum <
= EMAIL ADDRESS REMOVED = > wrote:

> aria-label on a div seems to be why they are not reading it.
>
> If you were to remove aria-label and use “sr-only” spans inside the list
> item divs, it might work.
>
>
>

From: Aditya
Date: Fri, Feb 25 2022 8:10PM
Subject: Re: when is a list not a list?
← Previous message | Next message →

Aria-label is not meant to override text (in non-interactive) elements. So divs spans p tags etc should not use aria-label.

Buttons, links, select tags etc are OK.

In the original example, if there was no aria-label, how would the list and its items get accessible name?

Background images do not have alt text so, while calculating the accessibility name, the algorithm just sees empty list.



Sent from my iPhone

> On Feb 25, 2022, at 8:33 PM, glen walker < = EMAIL ADDRESS REMOVED = > wrote:
>
>
> There was no aria-label on the real list example and it wasn't read there either. Not sure why the aria-label would prevent things from being read anyway. What makes you say that?
>
>> On Fri, Feb 25, 2022 at 7:23 PM Aditya via WebAIM-Forum < = EMAIL ADDRESS REMOVED = > wrote:
>> aria-label on a div seems to be why they are not reading it.
>>
>> If you were to remove aria-label and use “sr-only” spans inside the list item divs, it might work.
>>
>>

From: Patrick H. Lauke
Date: Fri, Feb 25 2022 8:11PM
Subject: Re: when is a list not a list?
← Previous message | Next message →

https://www.tpgi.com/short-note-on-aria-label-aria-labelledby-and-aria-describedby/

AT here are seeing that list as completely devoid of content (as that aria-label is not - consistently at least - seen as an appropriate stand-in for content here) and choosing to just not announce it

> On 26 Feb 2022, at 02:33, glen walker < = EMAIL ADDRESS REMOVED = > wrote:
>
> There was no aria-label on the real list example and it wasn't read there
> either. Not sure why the aria-label would prevent things from being read
> anyway. What makes you say that?
>
>> On Fri, Feb 25, 2022 at 7:23 PM Aditya via WebAIM-Forum <
>> = EMAIL ADDRESS REMOVED = > wrote:
>>
>> aria-label on a div seems to be why they are not reading it.
>>
>> If you were to remove aria-label and use “sr-only” spans inside the list
>> item divs, it might work.
>>
>>
>>
> > > >

From: Niranjan Vala
Date: Sat, Feb 26 2022 1:23AM
Subject: Re: when is a list not a list?
← Previous message | Next message →

Hi Glen, I am Niranjan. A new subscriber in this list. You can achieve
what you want by adding extra invisible div or span in your markup. As
described above, aria-label should not be used for this kind of situation.

HTML:

<div role="list" aria-label="my list label">
<div class="one" role="listitem"><div class="sr">one</div></div>
<div class="two" role="listitem"><div class="sr">two</div></div>
<div class="three" role="listitem"><div class="sr">three</div></div>
</div>

CSS:

.sr {
position: absolute;
left: -10000px;
top: auto;
width: 1px;
height: 1px;
overflow: hidden;
}

If you are using bootstrap, You can use .sr-only class. This will do the
trick. The code above doesn't affect the background images that are already
set using the css background property in your code.

My temporary code pen showing this code in action:
https://codepen.io/NiranjanGVala/pen/vYWzWVj

Read more here: https://webaim.org/techniques/css/invisiblecontent/

Hope this will help.

On Sat, 26 Feb 2022 at 07:04, glen walker < = EMAIL ADDRESS REMOVED = > wrote:

> Besides the known issue with CSS list-style:none on the Mac.
>
> I have an ARIA list that theoretically looks good but neither JAWS nor NVDA
> recognize it on Firefox or Chrome (and probably other browsers but I didn't
> test).
>
> <div role="list" aria-label="my list label">
> <div class="one" role="listitem" aria-label="one"></div>
> <div class="two" role="listitem" aria-label="two"></div>
> <div class="three" role="listitem" aria-label="three"></div>
> </div>
>
> Ignore the obvious question of why not use a real <ul>. It's not my code.
>
> The nested <div> elements with role="listitem" don't have any text
> content. However, they all have a class that has a background image so
> visibly you see a list of images.
>
> Neither JAWS nor NVDA think there's a list. You can't navigate using the L
> key. If you arrow down through the DOM, nothing gets read. It's skipped
> over. There's no visible text so that's not totally surprising.
>
> However, if I inspect the accessibility properties in Firefox or Chrome
> (via the code inspector), the container has a role of list and the children
> all have a role of listitem. So the AOM seems ok.
>
> I'm not sure this is a new problem but then I've never run across a list
> that was populated with background images. I can replicate it with a real
> list with if I have list-style:none. (In the ARIA list above, since
> they're just <div> elements, there isn't any implied list style.)
>
> <ul style="list-style: none;">
> <li style="background-image:url('some-image.jpg')"></li>
> <li style="background-image:url('some-image.jpg')"></li>
> <li style="background-image:url('some-image.jpg')"></li>
> </ul>
>
> JAWS and NVDA don't recognize that there's a list. Without the
> list-style:none, I visibly see three empty bullet points and both JAWS and
> NVDA recognize it.
>
> So, can I not have a list that is populated with background images when
> there aren't any visible bullets? It doesn't seem to matter if I use real
> <li> elements or role="listitem".
> > > > >


--
Cheers,

Niranjan G Vala

From: glen walker
Date: Sat, Feb 26 2022 8:10AM
Subject: Re: when is a list not a list?
← Previous message | Next message →

--000000000000922b7005d8ed3884
Content-Type: text/plain; charset="UTF-8"

Thanks everyone. I'm quite familiar with the nuances of aria-label and the
variations of the sr-only class. I was asking more about *why* it doesn't
work and not how to fix it. As mentioned, the AOM looks like it should
work. All the elements have a role and an accessible name, according to
the browser's code inspector.

Here's a screenshot of Chrome's AOM for the div example. The "Name"
property (accessible name) of the first list item shows as "one" and the
source of that name is the aria-label. The role shows as "listitem". So
all this info is exposed to AT. I'm guessing JAWS and NVDA are doing some
other heuristics and deciding not to surface that info to the user. Why
not? It's there.

[image: image.png]

As far as whether aria-label *should* be used, technically the spec
(normative) says aria-label "Defines a string value that labels the current
element. [aria-label]...provides the user with a recognizable name of the
object." Period. It doesn't say it should only be used on interactive
elements.

However, I'm also familiar with the (non-normative/informative) "Practical
support" of aria-label, https://www.w3.org/TR/using-aria/#label-support.
The 8th bullet point recommends not using aria-label on a list or other
non-interactive elements. These are just suggestions. There's also a
section on background images in the section after.

I guess I was in a philosophical mood and was questioning why something
that was coded according to normative spec and that appears to create a
correct AOM doesn't work. Not sure why I picked on this particular case.
There are lots of examples of correct (normative) code that are not
announced properly by AT.

--000000000000922b7005d8ed3884
Content-Type: image/png; name="image.png"
Content-Disposition: inline; filename="image.png"
Content-Transfer-Encoding: base64
Content-ID: <ii_l03y6qss0>
X-Attachment-Id: ii_l03y6qss0

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
--000000000000922b7005d8ed3884--

From: Patrick H. Lauke
Date: Sat, Feb 26 2022 9:23AM
Subject: Re: when is a list not a list?
← Previous message | Next message →

On 26/02/2022 15:10, glen walker wrote:
> I guess I was in a philosophical mood and was questioning why something
> that was coded according to normative spec and that appears to create a
> correct AOM doesn't work. Not sure why I picked on this particular case.
> There are lots of examples of correct (normative) code that are not
> announced properly by AT.

Because of the usual bane of AT heuristics (i.e. if the AT determined
that no, despite the aria-label there that list item has no content at
all, and as a result the entire list is empty as far as the AT is
concerned, there's no point now announcing "list with zero items" but
just silently skipping it altogether)

P
--
Patrick H. Lauke

https://www.splintered.co.uk/ | https://github.com/patrickhlauke
https://flickr.com/photos/redux/ | https://www.deviantart.com/redux
twitter: @patrick_h_lauke | skype: patrick_h_lauke

From: Aditya
Date: Sat, Feb 26 2022 10:10AM
Subject: Re: when is a list not a list?
← Previous message | Next message →

I have one other theory… may be the Accessibility tree that we see in inspector might not be the accessibility tree that AT perceives?

Like chrome has the actual raw accessibility tree that we can see apart from the inspect.



Sent from my iPhone

> On Feb 26, 2022, at 10:23 AM, Patrick H. Lauke < = EMAIL ADDRESS REMOVED = > wrote:
>
> On 26/02/2022 15:10, glen walker wrote:
>> I guess I was in a philosophical mood and was questioning why something
>> that was coded according to normative spec and that appears to create a
>> correct AOM doesn't work. Not sure why I picked on this particular case.
>> There are lots of examples of correct (normative) code that are not
>> announced properly by AT.
>
> Because of the usual bane of AT heuristics (i.e. if the AT determined that no, despite the aria-label there that list item has no content at all, and as a result the entire list is empty as far as the AT is concerned, there's no point now announcing "list with zero items" but just silently skipping it altogether)
>
> P
> --
> Patrick H. Lauke
>
> https://www.splintered.co.uk/ | https://github.com/patrickhlauke
> https://flickr.com/photos/redux/ | https://www.deviantart.com/redux
> twitter: @patrick_h_lauke | skype: patrick_h_lauke
> > > >

From: Niranjan Vala
Date: Sat, Feb 26 2022 10:24AM
Subject: Re: when is a list not a list?
← Previous message | Next message →

Hi Glen, Niranjan. You are right. A T might be responsible for this kind of
behaviour and I guess this is for good reasons. It's actually a very good
idea to make our brain philosophical and detective so we can learn and
understand a problem better. So after all discussions above, We can say in
a nutshell that sometimes even if all required semantics are exposed to the
A T, It is up-to the A T to present that information to the user. So in my
opinion this might be for good reasons and not a bug or unexpected
behaviour or something like that. What do you think about this?

On Sat, 26 Feb 2022 at 21:53, Patrick H. Lauke < = EMAIL ADDRESS REMOVED = >
wrote:

> On 26/02/2022 15:10, glen walker wrote:
> > I guess I was in a philosophical mood and was questioning why something
> > that was coded according to normative spec and that appears to create a
> > correct AOM doesn't work. Not sure why I picked on this particular case.
> > There are lots of examples of correct (normative) code that are not
> > announced properly by AT.
>
> Because of the usual bane of AT heuristics (i.e. if the AT determined
> that no, despite the aria-label there that list item has no content at
> all, and as a result the entire list is empty as far as the AT is
> concerned, there's no point now announcing "list with zero items" but
> just silently skipping it altogether)
>
> P
> --
> Patrick H. Lauke
>
> https://www.splintered.co.uk/ | https://github.com/patrickhlauke
> https://flickr.com/photos/redux/ | https://www.deviantart.com/redux
> twitter: @patrick_h_lauke | skype: patrick_h_lauke
> > > > >


--
Cheers,

Niranjan G Vala

From: glen walker
Date: Sat, Feb 26 2022 10:35AM
Subject: Re: when is a list not a list?
← Previous message | Next message →

It's possible but I generally don't like software trying to guess at what
I mean. It often guesses wrong. Or the software is assuming I don't know
what I'm doing so will present it differently.

On Sat, Feb 26, 2022 at 10:24 AM Niranjan Vala < = EMAIL ADDRESS REMOVED = >
wrote:

> We can say in
> a nutshell that sometimes even if all required semantics are exposed to the
> A T, It is up-to the A T to present that information to the user.
>

From: Niranjan Vala
Date: Sat, Feb 26 2022 10:50AM
Subject: Re: when is a list not a list?
← Previous message | Next message →

Have you tried this on firefox? firefox has the accessibility
inspector built-in. I will try it tomorrow because I am currently not on my
desktop.

On Sat, 26 Feb 2022 at 23:05, glen walker < = EMAIL ADDRESS REMOVED = > wrote:

> It's possible but I generally don't like software trying to guess at what
> I mean. It often guesses wrong. Or the software is assuming I don't know
> what I'm doing so will present it differently.
>
> On Sat, Feb 26, 2022 at 10:24 AM Niranjan Vala < = EMAIL ADDRESS REMOVED = >
> wrote:
>
> > We can say in
> > a nutshell that sometimes even if all required semantics are exposed to
> the
> > A T, It is up-to the A T to present that information to the user.
> >
> > > > >


--
Cheers,

Niranjan G Vala

From: glen walker
Date: Sat, Feb 26 2022 11:27AM
Subject: Re: when is a list not a list?
← Previous message | Next message →

Yes, Firefox and Chrome. Chrome's AOM inspector is easier to read (for me)
than Firefox's, but I had tried both. Both show a valid accessible name
and role.

I had tried various workarounds (which wasn't the gist of my original
question) on Firefox, Chrome, and Safari (iOS) with NVDA, JAWS, and
VoiceOver.

One side note that I didn't include originally because I was trying to keep
my example simple, was that the main list (either <ul> or <div
role="list">) also had a CSS content attribute that added text to the list
(not the listitem). The text was read by NVDA and VoiceOver but not by
JAWS. The accessible name calculation says that CSS content should be
included in the accessible name, but it's in step 2F which is after step 2C
so in theory should be ignored if there's an aria-label.

On Sat, Feb 26, 2022 at 10:50 AM Niranjan Vala < = EMAIL ADDRESS REMOVED = >
wrote:

> Have you tried this on firefox? firefox has the accessibility
> inspector built-in. I will try it tomorrow because I am currently not on my
> desktop.
>
>

From: glen walker
Date: Sat, Feb 26 2022 11:46AM
Subject: Re: when is a list not a list?
← Previous message | Next message →

Ok, perhaps my last comment on this topic. Regarding the CSS content
property, I forgot to say that I had tested it without an aria-label so
that step 2C in the accessible name calculation would be irrelevant and
thus 2F *might* apply, but 2F conditions the use of CSS content by saying
if the "role allows name from content", then CSS content should be
applied. A list (ul) is not considered an element that gets its name from
content (https://www.w3.org/TR/wai-aria/#namefromcontent) so CSS content
should be ignored and JAWS is correct.

On Sat, Feb 26, 2022 at 11:27 AM glen walker < = EMAIL ADDRESS REMOVED = > wrote:

> Yes, Firefox and Chrome. Chrome's AOM inspector is easier to read (for
> me) than Firefox's, but I had tried both. Both show a valid accessible
> name and role.
>
> I had tried various workarounds (which wasn't the gist of my original
> question) on Firefox, Chrome, and Safari (iOS) with NVDA, JAWS, and
> VoiceOver.
>
> One side note that I didn't include originally because I was trying to
> keep my example simple, was that the main list (either <ul> or <div
> role="list">) also had a CSS content attribute that added text to the list
> (not the listitem). The text was read by NVDA and VoiceOver but not by
> JAWS. The accessible name calculation says that CSS content should be
> included in the accessible name, but it's in step 2F which is after step 2C
> so in theory should be ignored if there's an aria-label.
>
> On Sat, Feb 26, 2022 at 10:50 AM Niranjan Vala < = EMAIL ADDRESS REMOVED = >
> wrote:
>
>> Have you tried this on firefox? firefox has the accessibility
>> inspector built-in. I will try it tomorrow because I am currently not on
>> my
>> desktop.
>>
>>

From: Niranjan Vala
Date: Sun, Feb 27 2022 1:49AM
Subject: Re: when is a list not a list?
← Previous message | Next message →

Hi Glen, Have just read all of your replies. So you have tested this with
Firefox as well and all possible screen reader and browser combinations.
Yah I can understand your curiosity in trying to understand why ATs are
behaving like this even AOM is exposing all the required accessibility
information to the AT. But this is not something in our hands so the only
thing left for us is to find some workaround for this kind of rare problem.
It's not about the gist of your original question, We all were trying to
find a solution for this kind of problem. It seems that you are working to
solve this accessibility problem.



Regarding content inserted by css content property, Yes you are absolutely
right that the content is computed in the accessible name computation and
thus exposed to the ATs. JAWS is smart enough to ignore the text in cases
like this. What I suggest to you is that if possible, use empty alt
property after css content property as described below.



element::after {

content: “Whatever the content is” / “”; // Empty alt after the slash ‘/'

}



I have just tested this with NVDA and it is behaving as expected.

On Sun, 27 Feb 2022 at 00:17, glen walker < = EMAIL ADDRESS REMOVED = > wrote:

> Ok, perhaps my last comment on this topic. Regarding the CSS content
> property, I forgot to say that I had tested it without an aria-label so
> that step 2C in the accessible name calculation would be irrelevant and
> thus 2F *might* apply, but 2F conditions the use of CSS content by saying
> if the "role allows name from content", then CSS content should be
> applied. A list (ul) is not considered an element that gets its name from
> content (https://www.w3.org/TR/wai-aria/#namefromcontent) so CSS content
> should be ignored and JAWS is correct.
>
> On Sat, Feb 26, 2022 at 11:27 AM glen walker < = EMAIL ADDRESS REMOVED = >
> wrote:
>
> > Yes, Firefox and Chrome. Chrome's AOM inspector is easier to read (for
> > me) than Firefox's, but I had tried both. Both show a valid accessible
> > name and role.
> >
> > I had tried various workarounds (which wasn't the gist of my original
> > question) on Firefox, Chrome, and Safari (iOS) with NVDA, JAWS, and
> > VoiceOver.
> >
> > One side note that I didn't include originally because I was trying to
> > keep my example simple, was that the main list (either <ul> or <div
> > role="list">) also had a CSS content attribute that added text to the
> list
> > (not the listitem). The text was read by NVDA and VoiceOver but not by
> > JAWS. The accessible name calculation says that CSS content should be
> > included in the accessible name, but it's in step 2F which is after step
> 2C
> > so in theory should be ignored if there's an aria-label.
> >
> > On Sat, Feb 26, 2022 at 10:50 AM Niranjan Vala < = EMAIL ADDRESS REMOVED = >
> > wrote:
> >
> >> Have you tried this on firefox? firefox has the accessibility
> >> inspector built-in. I will try it tomorrow because I am currently not on
> >> my
> >> desktop.
> >>
> >>
> > > > >


--
Cheers,

Niranjan G Vala

From: Batusic, Mario
Date: Mon, Feb 28 2022 2:07AM
Subject: Re: when is a list not a list?
← Previous message | No next message

Hi All,

Think a case, that somebody wishes to use SCC classes to depict some content for lsit items. That would be naturally not perceivable for screen readers and using aria-label on list items would be the right way to communicate the content to the AT. So ignoring the right defined ARIA semantics of aria-label attributes would render the correct coded list inaccessible.

Ciao Mario

-----Ursprüngliche Nachricht-----
Von: WebAIM-Forum < = EMAIL ADDRESS REMOVED = > Im Auftrag von Niranjan Vala
Gesendet: Sonntag, 27. Februar 2022 09:49
An: WebAIM Discussion List < = EMAIL ADDRESS REMOVED = >
Betreff: Re: [WebAIM] when is a list not a list?

Hi Glen, Have just read all of your replies. So you have tested this with Firefox as well and all possible screen reader and browser combinations.
Yah I can understand your curiosity in trying to understand why ATs are behaving like this even AOM is exposing all the required accessibility information to the AT. But this is not something in our hands so the only thing left for us is to find some workaround for this kind of rare problem.
It's not about the gist of your original question, We all were trying to find a solution for this kind of problem. It seems that you are working to solve this accessibility problem.



Regarding content inserted by css content property, Yes you are absolutely right that the content is computed in the accessible name computation and thus exposed to the ATs. JAWS is smart enough to ignore the text in cases like this. What I suggest to you is that if possible, use empty alt property after css content property as described below.



element::after {

content: “Whatever the content is” / “”; // Empty alt after the slash ‘/'

}



I have just tested this with NVDA and it is behaving as expected.

On Sun, 27 Feb 2022 at 00:17, glen walker < = EMAIL ADDRESS REMOVED = > wrote:

> Ok, perhaps my last comment on this topic. Regarding the CSS content
> property, I forgot to say that I had tested it without an aria-label
> so that step 2C in the accessible name calculation would be irrelevant
> and thus 2F *might* apply, but 2F conditions the use of CSS content by
> saying if the "role allows name from content", then CSS content should
> be applied. A list (ul) is not considered an element that gets its
> name from content (https://www.w3.org/TR/wai-aria/#namefromcontent) so
> CSS content should be ignored and JAWS is correct.
>
> On Sat, Feb 26, 2022 at 11:27 AM glen walker < = EMAIL ADDRESS REMOVED = >
> wrote:
>
> > Yes, Firefox and Chrome. Chrome's AOM inspector is easier to read
> > (for
> > me) than Firefox's, but I had tried both. Both show a valid
> > accessible name and role.
> >
> > I had tried various workarounds (which wasn't the gist of my
> > original
> > question) on Firefox, Chrome, and Safari (iOS) with NVDA, JAWS, and
> > VoiceOver.
> >
> > One side note that I didn't include originally because I was trying
> > to keep my example simple, was that the main list (either <ul> or
> > <div
> > role="list">) also had a CSS content attribute that added text to
> > the
> list
> > (not the listitem). The text was read by NVDA and VoiceOver but not
> > by JAWS. The accessible name calculation says that CSS content
> > should be included in the accessible name, but it's in step 2F which
> > is after step
> 2C
> > so in theory should be ignored if there's an aria-label.
> >
> > On Sat, Feb 26, 2022 at 10:50 AM Niranjan Vala
> > < = EMAIL ADDRESS REMOVED = >
> > wrote:
> >
> >> Have you tried this on firefox? firefox has the accessibility
> >> inspector built-in. I will try it tomorrow because I am currently
> >> not on my desktop.
> >>
> >>
> > > archives at http://webaim.org/discussion/archives
> >


--
Cheers,

Niranjan G Vala