When VoiceOver encounters a <div> that has tabindex=0 on it, it speaks all the text under that div.
That's because we're concatenating all the text under an element that is focusable.
There's nothing in ARIA that allows for this and it has caused endless problems for VoiceOver speaking way too much useless information.
I think we should undo this change which isn't supported by any spec.
Created attachment 221059 [details]
Comment on attachment 221059 [details]
View in context: https://bugs.webkit.org/attachment.cgi?id=221059&action=review
The patch looks good to me, although I don't understand why you are getting that undefined expectation for one test. Also, I think we might potentially have to adapt the ATK port after this change, but I'm happy to give it a try now and adapt later so VO is not blocked on theories :)
Setting the r+ anyway, but please take a look to the issue with the FAIL expectation before landing
> -PASS lastChar(axDiv.title) is "B"
> +FAIL lastChar(axDiv.title) should be undefined (of type undefined). Was (of type string).
This FAIL expectation looks wrong. Not sure why this is happening, though (why is "" undefined?)
> +FAIL lastChar(axDiv2.title) should be undefined (of type undefined). Was (of type string).