diff --git a/__mocks__/genInteractives.js b/__mocks__/genInteractives.js
index 68b239260..f12ebcb06 100644
--- a/__mocks__/genInteractives.js
+++ b/__mocks__/genInteractives.js
@@ -45,14 +45,13 @@ const interactiveElementsMap = {
'input[type="time"]': [{ prop: 'type', value: 'time' }],
'input[type="url"]': [{ prop: 'type', value: 'url' }],
'input[type="week"]': [{ prop: 'type', value: 'week' }],
- link: [{ prop: 'href', value: '#' }],
menuitem: [],
option: [],
select: [],
// Whereas ARIA makes a distinction between cell and gridcell, the AXObject
// treats them both as CellRole and since gridcell is interactive, we consider
// cell interactive as well.
- // td: [],
+ td: [],
th: [],
tr: [],
textarea: [],
@@ -61,25 +60,27 @@ const interactiveElementsMap = {
const nonInteractiveElementsMap: {[string]: Array<{[string]: string}>} = {
abbr: [],
+ address: [],
aside: [],
article: [],
blockquote: [],
- body: [],
br: [],
caption: [],
+ code: [],
dd: [],
+ del: [],
details: [],
dfn: [],
dialog: [],
dir: [],
dl: [],
dt: [],
+ em: [],
fieldset: [],
figcaption: [],
figure: [],
footer: [],
form: [],
- frame: [],
h1: [],
h2: [],
h3: [],
@@ -87,8 +88,10 @@ const nonInteractiveElementsMap: {[string]: Array<{[string]: string}>} = {
h5: [],
h6: [],
hr: [],
+ html: [],
iframe: [],
img: [],
+ ins: [],
label: [],
legend: [],
li: [],
@@ -107,9 +110,11 @@ const nonInteractiveElementsMap: {[string]: Array<{[string]: string}>} = {
ruby: [],
'section[aria-label]': [{ prop: 'aria-label' }],
'section[aria-labelledby]': [{ prop: 'aria-labelledby' }],
+ strong: [],
+ sub: [],
+ sup: [],
table: [],
tbody: [],
- td: [],
tfoot: [],
thead: [],
time: [],
diff --git a/__tests__/src/rules/control-has-associated-label-test.js b/__tests__/src/rules/control-has-associated-label-test.js
index 82c564320..fd2950830 100644
--- a/__tests__/src/rules/control-has-associated-label-test.js
+++ b/__tests__/src/rules/control-has-associated-label-test.js
@@ -156,7 +156,6 @@ const alwaysValid = [
{ code: '' },
{ code: '
' },
{ code: '' },
- { code: ' | ' },
{ code: '' },
{ code: '' },
{ code: '' },
@@ -261,6 +260,7 @@ const neverValid = [
{ code: '', errors: [expectedError] },
{ code: '', errors: [expectedError] },
{ code: '', errors: [expectedError] },
+ { code: ' | ', errors: [expectedError] },
{ code: ' | ', errors: [expectedError] },
// Interactive Roles
{ code: '', errors: [expectedError] },
diff --git a/__tests__/src/rules/no-interactive-element-to-noninteractive-role-test.js b/__tests__/src/rules/no-interactive-element-to-noninteractive-role-test.js
index 7f8a61b6e..49384d54b 100644
--- a/__tests__/src/rules/no-interactive-element-to-noninteractive-role-test.js
+++ b/__tests__/src/rules/no-interactive-element-to-noninteractive-role-test.js
@@ -169,6 +169,7 @@ const alwaysValid = [
{ code: ';' },
{ code: ';' },
{ code: ';' },
+ { code: ';' },
{ code: ';' },
{ code: ' | ;' },
{ code: ';' },
diff --git a/__tests__/src/rules/no-noninteractive-element-interactions-test.js b/__tests__/src/rules/no-noninteractive-element-interactions-test.js
index ba0206b83..c74abae18 100644
--- a/__tests__/src/rules/no-noninteractive-element-interactions-test.js
+++ b/__tests__/src/rules/no-noninteractive-element-interactions-test.js
@@ -76,7 +76,6 @@ const alwaysValid = [
{ code: ' {}} />;' },
/* HTML elements with neither an interactive or non-interactive valence (static) */
{ code: ' {}} />;' },
- { code: ' {}} />;' },
{ code: '