Created attachment 408440 [details] Bad VoiceOver output Overview: VoiceOver Accessibility is broken when reading an <img> element that uses a .svg file as the source. VoiceOver will not read the .svg as an image element and it incorrectly reads 114 unlabelled "image" elements that are internal to the .svg file. The only fix is to add role="img" to all <img> elements using .svg src values. Steps to Reproduce: 1. Open Safari on iOS or macOS and turn on VoiceOver. 2. Visit test case demo at http://pauljadam.com/demos/svg-role-img.html. 3. Navigate via Image navigation with VoiceOver (control + option + command + g). Expected Results: VoiceOver moves focus through the 2 image examples reading their alt text and image role. Actual Results: VoiceOver movies focus through 114 unlabelled "image" elements in the first example and 1 image with alt text in the second example that uses role="img".
<rdar://problem/68642213>
Created attachment 408441 [details] Good VoiceOver output on the role="img" example
Still valid. Any update?
I'm no longer able to reproduce the bug so it appears to be fixed :)
I am actually able to reproduce this bug. I have a group of small SVGs (flags of various countries) in a ul and without `role="img"` VO announces nonexistent images 5 or 6 times before announcing the actual SVGs. This only happens with some of the images, not all of them, even though they are all SVGs in the same list rendered with identical HTML. I can't find anything the incorrectly-announced images have in common that they don't share with images that are announced correctly.