Skip to content

Commit

Permalink
Merge pull request #3971 from Polymer/voiceover-click
Browse files Browse the repository at this point in the history
Make sure click events can always trigger tap, even on touch only devices
  • Loading branch information
dfreedm committed Sep 27, 2016
2 parents e45eeff + 02441ca commit 80640c8
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 6 deletions.
10 changes: 4 additions & 6 deletions src/standard/gestures.html
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,9 @@
};

function setupTeardownMouseCanceller(setup) {
for (var i = 0, en; i < MOUSE_EVENTS.length; i++) {
en = MOUSE_EVENTS[i];
var events = IS_TOUCH_ONLY ? ['click'] : MOUSE_EVENTS;
for (var i = 0, en; i < events.length; i++) {
en = events[i];
if (setup) {
document.addEventListener(en, mouseCanceller, true);
} else {
Expand All @@ -82,9 +83,6 @@
}

function ignoreMouse() {
if (IS_TOUCH_ONLY) {
return;
}
if (!POINTERSTATE.mouse.mouseIgnoreJob) {
setupTeardownMouseCanceller(true);
}
Expand Down Expand Up @@ -318,7 +316,7 @@
for (var i = 0, dep, gd; i < deps.length; i++) {
dep = deps[i];
// don't add mouse handlers on iOS because they cause gray selection overlays
if (IS_TOUCH_ONLY && MOUSE_EVENTS.indexOf(dep) > -1) {
if (IS_TOUCH_ONLY && MOUSE_EVENTS.indexOf(dep) > -1 && dep !== 'click') {
continue;
}
gd = gobj[dep];
Expand Down
50 changes: 50 additions & 0 deletions test/smoke/ios-voiceover.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
<!DOCTYPE html>
<!--
@license
Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes">
<script src="../../../webcomponentsjs/webcomponents.js"></script>

<link rel="import" href="../../polymer.html">

<title>Polymer</title>

</head>
<body>
<dom-module id="link-tap">
<template>
<style>
a {
font-size: 12em;
display: block;
}
</style>
<a id="normal" href="javascript:void(0)" on-tap="logTap">
normal
</a>
<pre id="pre"></pre>
</template>
<script>
HTMLImports.whenReady(function() {
Polymer({
is: 'link-tap',
logTap: function() {
this.$.pre.textContent += 'tap ' + performance.now() + '\n';
}
});
});
</script>
</dom-module>
<link-tap></link-tap>
</body>
</html>

0 comments on commit 80640c8

Please sign in to comment.