为什么剧作家认为 <th> 标签的 ARIA 角色是“cell”?

问题描述 投票:0回答:1

Playwright 强调使用“面向用户的属性和显式契约,例如

page.getByRole()
”来定位页面上的项目。我想在我的页面上找到
th
标签。 Chrome 的 DevTools 有一个“辅助功能”选项卡,显示我页面上的
th
是一个
columnheader
角色,而 MDN 的
th
标签
技术摘要表示它应该是
columnheader
角色,所以我希望
getByRole('columnheader') 
找到我的
th

事实证明,当我使用

columnheader
时,Playwright找不到它。相反,它建议我使用
cell
角色。这确实有效。但 Playwright 似乎在这里错了,因为这与 MDN 和 Chrome 不一致。为什么 Playwright 认为
th
标签的 ARIA 角色是
cell

如果您想一起玩,可以使用以下一些简单的标记:

<table>
  <thead><tr><th>Header</th></tr></thead>
  <tbody><tr><td>Value</td></tr></tbody>
</table>

或者这里有一张表格,展示了

columnheader
th
角色:

标题
价值
playwright wai-aria playwright-typescript
1个回答
0
投票

查看源代码

th
标签需要
scope='col'
才能按行
'columnheader'
定位。这是有道理的,因为
th
可能是
'rowheader'
'columnheader'

它也符合w3c:https://w3c.github.io/html-aam/#el-th

HTML规范th(不是列标题、行标题、列组标题或行组标题,并且祖先表元素具有表角色) [wai-aria-1.2]:细胞角色

© www.soinside.com 2019 - 2024. All rights reserved.