Skip to content

[EuiModal] VoiceOver + Safari is able to escape the focus trap when navigating by virtual cursor instead of keyboard #7532

@1Copenut

Description

@1Copenut

Describe the bug
Modal dialogs must trap keyboard and virtual cursor focus to ensure screen reader users do not accidentally escape the modal and start interacting with the rest of the page. Our EuiModal has a bug where I can traverse behind the modal when I an navigating using the VO shortcut plus arrow keys. Video attached below.

Impact and severity
Screen reader users could be negatively impacted by this issue, especially when we're using modal dialogs for things like confirming delete actions, entering user data, or modifying instances.

Environment and versions

  • EUI version: 93.1.1
  • React version: 18
  • Kibana version (if applicable): 8.12
  • Browser: Safari
  • Operating System: MacOS Ventura

To Reproduce
Steps to reproduce the behavior:

  1. Go to the EuiModal docs page. You must be using Safari on MacOS to reproduce this bug.
  2. Turn on VoiceOver
  3. Tab to the first modal button, and press Ctrl + Opt + Enter to open the modal. Verify VO says "You are in a modal".
  4. Press Ctrl + Opt + Left_Arrow 3-5 times. Your virtual cursor (black square) should be behind the modal and behind the gray smoke layer. This is the bug.

Expected behavior
Modal dialogs should prevent users from escaping with a screen reader or keyboard.

Video reproduction of the issue
https://github.com/elastic/eui/assets/934879/4da90a39-5fc8-4ef1-b0da-e69a0c8a2614

Additional context
Understanding SC 2.4.3: Focus Order (Level A)

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions