diff --git a/.vnurc b/.vnurc
index 9df17050b9..ed2e8bd8dc 100644
--- a/.vnurc
+++ b/.vnurc
@@ -8,14 +8,14 @@ An “img” element with no “alt” attribute must not have a “role” attr
An “img” element with no “alt” attribute must not have any “aria-\*” attributes other than “aria-hidden”.
An “img” element must have an “alt” attribute, except under certain conditions. For details, consult guidance on providing text alternatives for images.
# Ignoring aria-posinset and aria-setsize on role row
-Attribute “aria-posinset” not allowed on element “tr” at this point.
-Attribute “aria-setsize” not allowed on element “tr” at this point.
+# Attribute “aria-posinset” not allowed on element “tr” at this point.
+# Attribute “aria-setsize” not allowed on element “tr” at this point.
# Ignoring role meter
Bad value “meter” for attribute “role” on element “div”.
# https://github.com/w3c/aria-practices/issues/1675
The “type” attribute is unnecessary for JavaScript resources.
# https://github.com/w3c/aria-practices/issues/1676
-The “row” role is unnecessary for element “tr”.
+# The “row” role is unnecessary for element “tr”.
# https://github.com/w3c/aria-practices/issues/1677
Attribute “aria-activedescendant” value should either refer to a descendant element, or should be accompanied by attribute “aria-owns”.
# https://github.com/w3c/aria-practices/issues/1678
@@ -31,4 +31,4 @@ Attribute “aria-actions” not allowed on element “button” at this point.
Element “search” not allowed as child of element “div” in this context.*
# https://github.com/validator/validator/issues/1364
The “role” attribute must not be used on a “td” element which has a “table” ancestor with no “role” attribute, or with a “role” attribute whose value is “table”, “grid”, or “treegrid”.
-The “role” attribute must not be used on a “tr” element which has a “table” ancestor with no “role” attribute, or with a “role” attribute whose value is “table”, “grid”, or “treegrid”.
+# The “role” attribute must not be used on a “tr” element which has a “table” ancestor with no “role” attribute, or with a “role” attribute whose value is “table”, “grid”, or “treegrid”.
diff --git a/content/about/coverage-and-quality/coverage-and-quality-report.html b/content/about/coverage-and-quality/coverage-and-quality-report.html
index 95f9be2669..f7c0de5af2 100644
--- a/content/about/coverage-and-quality/coverage-and-quality-report.html
+++ b/content/about/coverage-and-quality/coverage-and-quality-report.html
@@ -600,7 +600,6 @@
Roles with More than One Guidance or Exa
Editable Combobox with Grid Popup
Layout Grid
Table
- Treegrid Email Inbox
@@ -2095,8 +2094,8 @@ Coding Practices
|
|
ex1 |
- 3 |
- 3 |
+ 2 |
+ 2 |
7 |
5 |
aria-activedescendant,aria-current |
diff --git a/content/about/coverage-and-quality/role-coverage.csv b/content/about/coverage-and-quality/role-coverage.csv
index d3d2296440..f682b6a8d6 100644
--- a/content/about/coverage-and-quality/role-coverage.csv
+++ b/content/about/coverage-and-quality/role-coverage.csv
@@ -54,7 +54,7 @@
"radio","3","4","Guidance: Radio Group Pattern","Guidance: For Radio Groups Not Contained in a Toolbar","Guidance: For Radio Group Contained in a Toolbar","Example: Radio Group Using aria-activedescendant","Example: Rating Radio Group","Example: Radio Group Using Roving tabindex","Example: Toolbar"
"radiogroup","0","4","Example: Radio Group Using aria-activedescendant","Example: Rating Radio Group","Example: Radio Group Using Roving tabindex","Example: Toolbar"
"region","1","6","Guidance: Region","Example: Accordion","Example: Auto-Rotating Image Carousel with Buttons for Slide Control","Example: Auto-Rotating Image Carousel with Tabs for Slide Control","Example: Navigation Menubar","Example: Navigation Treeview","Example: Region Landmark"
-"row","0","4","Example: Editable Combobox with Grid Popup","Example: Layout Grid","Example: Table","Example: Treegrid Email Inbox"
+"row","0","3","Example: Editable Combobox with Grid Popup","Example: Layout Grid","Example: Table"
"rowgroup","0","1","Example: Table"
"rowheader","0","0"
"scrollbar","0","0"
diff --git a/content/index/index.html b/content/index/index.html
index 43027a6d1a..f5f23cba2e 100644
--- a/content/index/index.html
+++ b/content/index/index.html
@@ -326,7 +326,6 @@ Examples by Role
Editable Combobox with Grid Popup
Layout Grid
Table
- Treegrid Email Inbox
diff --git a/content/patterns/treegrid/examples/treegrid-1.html b/content/patterns/treegrid/examples/treegrid-1.html
index 0732a94b6d..3450c3ebf6 100644
--- a/content/patterns/treegrid/examples/treegrid-1.html
+++ b/content/patterns/treegrid/examples/treegrid-1.html
@@ -112,42 +112,42 @@ Example
-
+
Treegrids are awesome |
Want to learn how to use them? |
aaron@thegoogle.rocks |
-
+
re: Treegrids are awesome |
I agree with you, they are the shizzle |
joe@blahblahblah.blahblah |
-
+
re: Treegrids are awesome |
They are great for showing a lot of data, like a grid |
billy@dangerous.fish |
-
+
re: Treegrids are awesome |
Cool, we've been needing an example and documentation |
doris@rufflazydogs.sleep |
-
+
re: Treegrids are awesome |
I hear the Fancytree library is going to align with this example! |
someone@please-do-it.company |
-
+
re: Treegrids are awesome |
Sometimes they are more like trees, others are more like grids |
mari@beingpractical.com |
-
+
re: Treegrids are awesome |
Cool, when it's a tree, let's keep left/right to collapse/expand |
issie@imadeadcatsadly.wascute |
-
+
re: Treegrids are awesome |
I see, sometimes right arrow moves by column |
kitten@kittenseason.future |
@@ -327,17 +327,6 @@ Role, Property, State, and Tabindex Attributes
table |
Provides an accessible name for the treegrid . |
-
- row |
- |
- tr |
-
-
- - Identifies the element as a
row .
- - The
row role is not an implicit semantic for the tr element when in a treegrid .
-
- |
-
|
tabindex="-1" |
diff --git a/content/patterns/treegrid/treegrid-pattern.html b/content/patterns/treegrid/treegrid-pattern.html
index 0b438b68e7..d0243756d7 100644
--- a/content/patterns/treegrid/treegrid-pattern.html
+++ b/content/patterns/treegrid/treegrid-pattern.html
@@ -258,9 +258,9 @@ Note
WAI-ARIA Roles, States, and Properties
- The treegrid container has role treegrid.
- - Each row container has role row and is either a DOM descendant of or owned by the
treegrid
element or an element with role rowgroup.
+ - Each row container has an implicit role of row and is either a DOM descendant of or owned by the
treegrid
element or an element with role rowgroup.
-
- Each cell is either a DOM descendant of or owned by a
row
element and has one of the following roles:
+ Each cell is either a DOM descendant of or owned by a row element and has one of the following roles:
- columnheader if the cell contains a title or header information for the column.
- rowheader if the cell contains title or header information for the row.
@@ -268,8 +268,8 @@ WAI-ARIA Roles, States, and Properties
-
- A
row
that can be expanded or collapsed to show or hide a set of child rows is a parent row.
- Each parent row
has the aria-expanded state set on either the row
element or on a cell contained in therow
.
+ A row that can be expanded or collapsed to show or hide a set of child rows is a parent row.
+ Each parent row has the aria-expanded state set on either the row element or on a cell contained in the row.
The aria-expanded
state is set to false
when the child rows are not displayed and set to true
when the child rows are displayed.
Rows that do not control display of child rows do not have the aria-expanded
attribute because, if they were to have it, they would be incorrectly described to assistive technologies as parent rows.
diff --git a/test/tests/treegrid_treegrid-1.js b/test/tests/treegrid_treegrid-1.js
index b2fab07d0f..640549341f 100644
--- a/test/tests/treegrid_treegrid-1.js
+++ b/test/tests/treegrid_treegrid-1.js
@@ -9,10 +9,10 @@ const exampleFile = 'content/patterns/treegrid/examples/treegrid-1.html';
const ex = {
treegridSelector: '#ex1 [role="treegrid"]',
- emailRowSelector: '#ex1 [role="row"]',
+ emailRowSelector: '#ex1 tbody tr',
gridcellSelector: '#ex1 [role="gridcell"]',
- threadSelector: '#ex1 [role="row"][aria-expanded]',
- closedThreadSelector: '#ex1 [role="row"][aria-expanded]',
+ threadSelector: '#ex1 tbody tr[aria-expanded]',
+ closedThreadSelector: '#ex1 tbody tr[aria-expanded]',
emailLinkSelector: '#ex1 td a',
lastRowIndex: 7,
// For each row, the aria-level, aria-setsize and aria-posinset values
@@ -117,7 +117,7 @@ const isClosedThread = async function (el) {
const checkFocusOnGridcell = async function (t, rowIndex, gridcellIndex) {
let gridcellsSelector =
- '#ex1 [role="row"]:nth-of-type(' + (rowIndex + 1) + ') [role="gridcell"]';
+ '#ex1 tbody tr:nth-of-type(' + (rowIndex + 1) + ') [role="gridcell"]';
// If the gridcell is index 0 or 1, it does not contain a widget, focus
// should be on the gridcell itself
@@ -138,7 +138,7 @@ const sendKeyToGridcellAndWait = async function (
key
) {
let gridcellSelector =
- '#ex1 [role="row"]:nth-of-type(' + (rowIndex + 1) + ') [role="gridcell"]';
+ '#ex1 tbody tr:nth-of-type(' + (rowIndex + 1) + ') [role="gridcell"]';
gridcellSelector =
gridcellSelector + ':nth-of-type(' + (gridcellIndex + 1) + ')';
@@ -220,10 +220,6 @@ ariaTest(
}
);
-ariaTest('row role on tr element', exampleFile, 'row-role', async (t) => {
- await assertAriaRoles(t, 'ex1', 'row', 8, 'tr');
-});
-
ariaTest(
'roving tabindex on rows and links',
exampleFile,
@@ -807,7 +803,7 @@ ariaTest.failing(
// INTERACTIVE ITEM 1: Enter sent while focus is email gridcell should trigger link
- const selector = '#ex1 [role="row"]:nth-of-type(1) a';
+ const selector = '#ex1 tbody tr:nth-of-type(1) a';
const newUrl = t.context.url + '#test-url-change';
// Reset the href to not be an email link in order to test