在我们的 Web 应用程序中,我们使用了多个“响应式”HTML 表格——如果它们的内容太宽,它们可以水平滚动(CSS 规则:)width:100%; overflow-x: auto;
。这允许在表格中显示所有必要的信息,而不会破坏布局并使整个页面水平滚动。
在我们的例子中,这仅适用于小屏幕(在调整大小的浏览器窗口或用户将字体大小增加超过 200% 时),因为我们的表格不是那么大(请注意,应用程序是内部的,只会被使用在笔记本电脑/台式机屏幕上)。
不幸的是,键盘用户无法访问水平滚动内容overflow-x
——滚动内容的唯一方法是使用鼠标。仅当整个页面可滚动或元素具有焦点时,使用箭头键才有效。
所以,为了使我们的表格可以用键盘控制,我正在考虑添加tabindex="0"
它们,从而允许使用箭头键。如果表格是可滚动的,这似乎可以正常工作,但也意味着非交互式元素(大屏幕上的表格)可以获得焦点,这可能会导致键盘用户感到困惑。
这是一个小例子(用 Bootstrap 制作,省去写一些 CSS)。调整浏览器窗口的大小来测试它:
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet"/>
<h1>Some heading</h1>
<a href="#">First link (for tabbing purposes)</a>
<table class="table table-responsive" tabindex="0">
<thead>
<tr>
<th scole="col">Column 1</th>
<th scole="col">Column 2</th>
<th scole="col">Column 3</th>
<th scole="col">Column 4</th>
<th scole="col">Column 5</th>
<th scole="col">Column 6</th>
<th scole="col">Column 7</th>
</tr>
</thead>
<tbody>
<tr>
<td>Lorem ipsum</td>
<td>Lorem ipsum</td>
<td>Lorem ipsum</td>
<td>Lorem ipsum</td>
<td>Lorem ipsum</td>
<td>Lorem ipsum</td>
<td>Lorem ipsum</td>
</tr>
</tbody>
</table>
<a href="#">Second link (for tabbing purposes)</a>
您是否认为此解决方案可能是可访问性的问题,是否有人对我如何解决它有更好的了解?谢谢