Bug 196354

Summary: AX: Role=switch is communicated as a "checkbox"
Product: WebKit Reporter: Scott <scottaohara>
Component: AccessibilityAssignee: Nobody <webkit-unassigned>
Status: RESOLVED DUPLICATE    
Severity: Normal CC: aroselli, darin.senneff, mfairchild365, ntim, robin, webkit-bug-importer, webkit.org
Priority: P2 Keywords: InRadar
Version: Safari 12   
Hardware: iPhone / iPad   
OS: iOS 12   

Description Scott 2019-03-28 08:00:36 PDT
As a follow up to bug 194006, I'm very happy to see that role=switch is now communicating state.  

However, this issue is to draw attention to the fact that role="switch" should be announced as a "switch" with an "on" or "off" state, rather than the present role announcement of "checkbox" and state of "checked" or "unchecked".

Making this change would match the implementation / announcements of macOS Safari + VO.

The following link provides additional testing information and Switch demos.

https://scottaohara.github.io/a11y_styled_form_controls/src/checkbox--switch/

Thank you!
Comment 1 Radar WebKit Bug Importer 2019-03-28 08:01:07 PDT
<rdar://problem/49379241>
Comment 2 Darin Senneff 2023-07-18 11:54:11 PDT
Bumping this to say that this is still present 4 years later with iOS 16.5.1 VoiceOver + Safari. 

When encountering a role="switch" element, VoiceOver still calls the element a "checkbox" with a "checked" or "unchecked" state. 

Changing this to announce the element as a "switch" with an "on" or "off" state would bring iOS Safari in line with MacOS Safari, JAWS, NVDA, Narrator, and TalkBack; which all announce the element as such.
Comment 3 Curtis Wilcox 2024-01-26 11:19:05 PST
I can still reproduce this problem with VoiceOver on iOS 17.3.
Comment 4 Tim Nguyen (:ntim) 2024-01-28 23:02:53 PST
Please check iOS 17.4 beta

*** This bug has been marked as a duplicate of bug 268120 ***