使用withBackdrop进行纸张对话可防止通过Tab键聚焦控件

时间:2016-06-15 17:06:56

标签: html polymer accessibility polymer-1.0 paper-dialog

我有一个使用with-backdrop属性的纸质对话框。我注意到在点击了使用with-backdrop属性的纸质对话框中的任何地方后,我可以点击Tab键,浏览器将关注输入元素:

addEventListener('WebComponentsReady', function() {
  Polymer({
    is: 'x-example',
    ready: function() {
      this.$$('paper-dialog').open();
    }
  });
});
<base href="https://polygit.org/components/">
<script src="webcomponentsjs/webcomponents-lite.min.js"></script>
<link href="paper-dialog/paper-dialog.html" rel="import">
<link href="paper-input/paper-input.html" rel="import">
<link href="polymer/polymer.html" rel="import">

<dom-module id="x-example">
  <style>
    :host {
      display: block;
    }
  </style>
  <template>
    <paper-dialog>
      <h2 class="header">Hello</h2>
      <paper-input
        label="Focusable input"
        tabindex
        type="text">
      </paper-input>
    </paper-dialog>
  </template>
</dom-module>

<x-example></x-example>

但是,如果我设置了with-backdrop属性,浏览器将不会聚焦输入元素:

addEventListener('WebComponentsReady', function() {
  Polymer({
    is: 'x-example',
    ready: function() {
      this.$$('paper-dialog').open();
    }
  });
});
<base href="https://polygit.org/components/">
<script src="webcomponentsjs/webcomponents-lite.min.js"></script>
<link href="paper-dialog/paper-dialog.html" rel="import">
<link href="paper-input/paper-input.html" rel="import">
<link href="polymer/polymer.html" rel="import">

<dom-module id="x-example">
  <style>
    :host {
      display: block;
    }
  </style>
  <template>
    <paper-dialog with-backdrop>
      <h2 class="header">Hello</h2>
      <paper-input
        label="Focusable input"
        tabindex
        type="text">
      </paper-input>
    </paper-dialog>
  </template>
</dom-module>

<x-example></x-example>

有没有办法有背景并仍允许对话框通过键盘导航?

设备信息:我在OSX上运行Chrome v50时遇到此问题。

2 个答案:

答案 0 :(得分:0)

似乎是您正在使用的版本的问题。我在Polymer的网站和我的本地试了一下,这似乎工作正常。以下是我使用的版本:

论文对话:1.0.4

聚合物:1.3.2

纸张输入:1.0.18

我还建议你在Github上为同一个

打开一个问题

答案 1 :(得分:0)

在演示中,我在输入元素中包含tabindex属性而未指定值。删除此属性允许重点输入:

addEventListener('WebComponentsReady', function() {
  Polymer({
    is: 'x-example',
    ready: function() {
      this.$$('paper-dialog').open();
    }
  });
});
<base href="https://polygit.org/components/">
<script src="webcomponentsjs/webcomponents-lite.min.js"></script>
<link href="paper-dialog/paper-dialog.html" rel="import">
<link href="paper-input/paper-input.html" rel="import">
<link href="polymer/polymer.html" rel="import">

<dom-module id="x-example">
  <style>
    :host {
      display: block;
    }
  </style>
  <template>
    <paper-dialog with-backdrop>
      <h2 class="header">Hello</h2>
      <paper-input
        label="Focusable input"
        type="text">
      </paper-input>
    </paper-dialog>
  </template>
</dom-module>

<x-example></x-example>