Re: role="list", Safari and VoiceOver

Hello everybody,

I'm not really disagreeing (mainly because I think this really is not an issue at all), but I’d like to add some thoughts:

Am 03.05.2022 um 00:34 schrieb Guy Hickling <guy.hickling@gmail.com<mailto:guy.hickling@gmail.com>>:

Designers and/or developers decide not to show bullets for reasons of desired looks. Some do it simply because they just don't like or want the look of bullets.

I tested many websites and from my experience, very often you can not say that developers and/or designers choose intentionally a certain design or element. This might be true (but is not always) for professionals. But not for bloggers and people with a small business that provide their own website - and there are many of them! Anyway: Quite often there is obviously no purpose on coding decisions - and even if - very often it’s not the best. And even if, you never know what a blogger is making with the given tools. Especially if it comes to accessibility.

There is a lot of bad design (both visually and technically) out there and I find it on the great majority of pages. That’s the thing Apple addresses.

So it is nothing to do with whether the thing is really a list of not, and I think it is wrong for Apple to just decide arbitrarily that a list should not be announced simply because of a no-bullets visual styling.

If you style something not looking like a list, many people do not recognise it as a list. So it’s just consistent to not announce it to AT user either.

However, there is one very common case that I often see but is undoubtedly quite wrong. That's when developers put a single item in a <ul> list! (I don't mean simply when a search, for instance, just happens to find 1 result occasionally - that is arguably reasonable, to stay consistent with when several results are found.) I mean when developers just do it for some reason best known to themselves, and I have never found out why they do it! Is there some framework that puts single items in a list? I raise it as a 1.3.1 issue because the visual presentation is not that of a list, so should not be conveyed programmatically as a list!

In earlier versions of html (if I’m not wrong) a list was even allowed to be completely empty, which makes sense to me. For example a shopping list - it's there, even if your fridge is full. And when the milk is out and you put it on that list, it has just one list item until you add butter or cheese.

Empty lists and lists with just one item make absolutely sense for semantic reasons. But of course they don’t help users and add clutter or „noise“ from a user perspective.

So the best semantics is not always best for (all) users.

As to whether lists are over-used or not, that is an interesting question. For instance, a couple of links or buttons beside each other - maybe two Previous and Next buttons. Should they be announced as list? - probably not.

That is a good example for a use case where many developers decide to use an unordered list and remove the bullet points.

A row of cards (the pattern of an image over a heading link over a paragraph of text) - should they be a list? I have always assumed it will help screen reader users to know how many of them there are up front so I advise putting them in a list. (If there's lots, the screen reader user might want to hit the H key to skip to the next heading rather than navigate through them!)

There are many ways to provide the number of items, that come with less noise/ clutter. A simple paragraph with even more information like "Page one of three showing items 1 to 20“ has more information and less noise.

This question of (possibly) over-using lists is a case where I would like to see views from actual screen reader users (lots of views, not just 2 or 3, perhaps from a survey, and from ordinary users, not ones who are also accessibility experts as it's what ordinary users think here that is important.

As far as I remember, that is exactly what Apple did and they got a lot of complains of developers, but the users like VoiceOver. It’s quite popular, so in my opinion Apple must have made at least some popular decisions.

A general thought about this whole topic: trying to make the best of bad code is the job of browser vendors. Just imagine what the web would look like, if browsers would show „error at line 123“ instead of a web page if the code is not valid html.

What about other technical decisions from Apple like trying to recognise headings that are not in an hx element or have the wrong level?

What about reading out text on images or describing them? We will see many of these things and as developers who are into accessibility, we have the possibility to add a role="list“ if we really, really want to show, that we know what we are doing and a certain list hast to be explicitly announced as a list, although it does not look like one.

To all of you, that think, Apple is on the wrong track here: I also thought this way (I love semantics and demand a proper separation of concerns) but I finally had to admit, that Apples decision makes sense. When looking on web pages with lists that do not look like lists, very often it is not necessary to really announce a list, more often than not it is even better than adding clutter or noise.

But again: I do not think, that this is a game changer in accessibility in one way or another. It’s a detail, that does not really break anything.

Just my 2 cents

Marc

Received on Tuesday, 3 May 2022 06:49:56 UTC