Polymer / polymer

Our original Web Component library.
https://polymer-library.polymer-project.org/
BSD 3-Clause "New" or "Revised" License
22.05k stars 2.01k forks source link

Mobile clicks cancelled with VoiceOver or Talkback #5697

Open steverep opened 2 years ago

steverep commented 2 years ago

Description

When cancelSyntheticClickEvents is true in lib/utils/settings.js (default), click events initiated by mobile screen readers (VoiceOver or Talkback) are immediately killed by function _handleNative in lib/utils/gestures.js. This obviously affects any element using that module, but also seems to affect every other element on the page (i.e. even non-polymer elements), because the event listeners are injected globally ob the base html element and handle events before any other function.

The latter point means this bug can render nearly an entire application inaccessible even when most components do not use Polymer. See home-assistant/frontend#8178 and home-assistant/frontend#10617.

Please excuse that I cannot verify the breakage with Talkback as I do not currently have a device readily available.

Live Demo

iron-overlay-behavior demo on webcomponents.org

Steps to Reproduce

  1. Go to demo on iOS in any browser
  2. Turn on VoiceOver
  3. Try to click the plain overlay button
  4. Try to click the button to copy the code

Expected Results

Buttons should work equivalent to when VoiceOver is off

Actual Results

Nothing happens for either button

Browsers Affected

Versions