зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1676344 - Treat TEXT_CONTAINER accessibles between tables and table rows, as well as table rows and cells, as presentational, r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D96532
This commit is contained in:
Родитель
ccd859ffae
Коммит
1c9ba3438f
|
@ -1467,14 +1467,20 @@ nsAccessibilityService::CreateAccessibleByFrameType(nsIFrame* aFrame,
|
|||
case eHTMLTextFieldType:
|
||||
newAcc = new HTMLTextFieldAccessible(aContent, document);
|
||||
break;
|
||||
case eHyperTextType:
|
||||
case eHyperTextType: {
|
||||
if (aContext->IsTable() || aContext->IsTableRow()) {
|
||||
// This is some generic hyperText, for example a block frame element
|
||||
// inserted between a table and table row. Treat it as presentational.
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
if (!aContent->IsAnyOfHTMLElements(nsGkAtoms::dt, nsGkAtoms::dd,
|
||||
nsGkAtoms::div, nsGkAtoms::thead,
|
||||
nsGkAtoms::tfoot, nsGkAtoms::tbody)) {
|
||||
newAcc = new HyperTextAccessibleWrap(aContent, document);
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
case eImageType:
|
||||
newAcc = new ImageAccessibleWrap(aContent, document);
|
||||
break;
|
||||
|
|
|
@ -189,6 +189,30 @@
|
|||
|
||||
testAccessibleTree("whitespaces-grid", accTree);
|
||||
|
||||
// grids that could contain text container accessibles but shouldn't.
|
||||
|
||||
accTree =
|
||||
{ TABLE: [
|
||||
{ ROW: [
|
||||
{ GRID_CELL: [
|
||||
{ TEXT_LEAF: [ ] },
|
||||
] },
|
||||
{ GRID_CELL: [
|
||||
{ TEXT_LEAF: [ ] },
|
||||
] },
|
||||
] },
|
||||
{ ROW: [
|
||||
{ GRID_CELL: [
|
||||
{ TEXT_LEAF: [ ] },
|
||||
] },
|
||||
{ GRID_CELL: [
|
||||
{ TEXT_LEAF: [ ] },
|
||||
] },
|
||||
] },
|
||||
] };
|
||||
|
||||
testAccessibleTree("gridWithPresentationalBlockElement", accTree);
|
||||
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
|
@ -273,5 +297,22 @@
|
|||
<span role="gridcell">a user1</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="gridWithPresentationalBlockElement" role="grid">
|
||||
<span style="display: block;">
|
||||
<div role="row">
|
||||
<div role="gridcell">Cell 1</div>
|
||||
<div role="gridcell">Cell 2</div>
|
||||
</div>
|
||||
</span>
|
||||
<span style="display: block;">
|
||||
<div role="row">
|
||||
<span style="display: block;">
|
||||
<div role="gridcell">Cell 3</div>
|
||||
<div role="gridcell">Cell 4</div>
|
||||
</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -30,6 +30,30 @@
|
|||
|
||||
testAccessibleTree("table", accTree);
|
||||
|
||||
// tables that could contain text container accessibles but shouldn't.
|
||||
|
||||
accTree =
|
||||
{ TABLE: [
|
||||
{ ROW: [
|
||||
{ CELL: [
|
||||
{ TEXT_LEAF: [ ] },
|
||||
] },
|
||||
{ CELL: [
|
||||
{ TEXT_LEAF: [ ] },
|
||||
] },
|
||||
] },
|
||||
{ ROW: [
|
||||
{ CELL: [
|
||||
{ TEXT_LEAF: [ ] },
|
||||
] },
|
||||
{ CELL: [
|
||||
{ TEXT_LEAF: [ ] },
|
||||
] },
|
||||
] },
|
||||
] };
|
||||
|
||||
testAccessibleTree("tableWithPresentationalBlockElement", accTree);
|
||||
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
|
@ -57,5 +81,21 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div id="tableWithPresentationalBlockElement" role="table">
|
||||
<span style="display: block;">
|
||||
<div role="row">
|
||||
<div role="cell">Cell 1</div>
|
||||
<div role="cell">Cell 2</div>
|
||||
</div>
|
||||
</span>
|
||||
<span style="display: block;">
|
||||
<div role="row">
|
||||
<span style="display: block;">
|
||||
<div role="cell">Cell 3</div>
|
||||
<div role="cell">Cell 4</div>
|
||||
</span>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
Загрузка…
Ссылка в новой задаче