管理“轻触搜索”的触发操作

2015 年 6 月,我们在 Chrome 43 上面向大多数 Android 手机推出了“触摸搜索”功能。当用户在 Chrome 中点按任何页面上的文本时,系统会选择该字词以及周围的相关文本。搜索字词会显示在屏幕底部的栏中,用户可以在叠加层面板中打开该栏以显示完整的搜索结果。

轻触搜索动画

对于可选择、不可互动或无法聚焦的任何纯文本,都启用了点按触发功能。如果网页中有一个用于响应用户点按文字的点击处理程序,“触摸搜索”功能会自动检测该响应并将其忽略,因为我们知道开发者打算处理该事件。使用轻触并按住手势手动选择文字也会触发“轻触搜索”栏。用户可以使用 Chrome 隐私设置下的偏好设置来启用或停用该功能。

作为网站的作者,您经常会不希望对某个元素通过点按手势来触发搜索。为了确保 Chrome 能够按预期运行,请使用以下元素:

  1. 可聚焦:在元素上添加 tabindex=-1 属性。
  2. 互动式:使用以下任一标准方法来指明元素是互动式的:
    • 您可以使用无障碍功能标记来指明相应元素具有idget 角色微件属性。 例如,任何具有 roles=button 的元素都不会触发。添加无障碍功能标记有一个额外的好处,就是让视障用户更容易看懂您的网页。
    • 任何调用 preventDefault() 或者操控 DOM 或 CSS 的 JavaScript 点击处理程序都不会触发“轻触搜索”功能。
  3. 不可选择:使用 -webkit-user-select: none;不可选的文字将不会触发“轻触搜索”功能,即使使用“轻触并按住”手势时也是如此。

如果“触摸搜索”在应该触发的时间或位置没有触发,或者间歇性触发,那么这些不应该被聚焦的元素就可能被标记为可聚焦或交互式。您可以借助以下步骤确定导致“轻触搜索”功能无法触发的原因:

  1. 检查文本是否可通过轻触并按住手势选择。如果选中了文字,但“触摸搜索”栏未显示,请在手机上在 Chrome 中“隐私权”下的“轻触搜索”设置中 停用该功能。另请注意,一些低端设备不支持“轻触搜索”功能。
  2. 如果选中文字后会显示“触摸搜索”栏,但在您点按文字时未显示,则表示存在点按触发问题。如果触发是间歇性的,则问题可能是由于元素的 JavaScript 处理程序有条件地激活了动画。
  3. 如果一直没有触发,请查阅上面列出的触发原因(检查相应元素是可聚焦元素还是交互式元素)。

如果您的网页仍然没有按预期运行,请在 crbug.com 上提交 bug 并添加标签 Cr-UI-Browser-Mobile-TouchToSearch