Skip to content

Commit 105016c

Browse files
authored
fix(invalidrole): allow upper and mixed case role names (#4358)
Closes: #2695
1 parent f89c13b commit 105016c

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-1
lines changed

lib/checks/aria/invalidrole-evaluate.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import { tokenList } from '../../core/utils';
2828
function invalidroleEvaluate(node, options, virtualNode) {
2929
const allRoles = tokenList(virtualNode.attr('role'));
3030
const allInvalid = allRoles.every(
31-
role => !isValidRole(role, { allowAbstract: true })
31+
role => !isValidRole(role.toLowerCase(), { allowAbstract: true })
3232
);
3333

3434
/**

test/checks/shared/invalidrole.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,4 +111,33 @@ describe('invalidrole', function () {
111111
);
112112
assert.deepEqual(checkContext._data, ['foo', 'bar']);
113113
});
114+
115+
it('should return true if applied to an uppercase nonsensical role', function () {
116+
var virtualNode = queryFixture(
117+
'<div id="target" role="FOO">Contents</div>'
118+
);
119+
assert.isTrue(
120+
checks.invalidrole.evaluate.call(
121+
checkContext,
122+
virtualNode.actualNode,
123+
null,
124+
virtualNode
125+
)
126+
);
127+
assert.deepEqual(checkContext._data, ['FOO']);
128+
});
129+
130+
it('should return false if applied to an uppercase valid role', function () {
131+
var virtualNode = queryFixture(
132+
'<div id="target" role="BUTTON">Contents</div>'
133+
);
134+
assert.isFalse(
135+
checks.invalidrole.evaluate.call(
136+
checkContext,
137+
virtualNode.actualNode,
138+
null,
139+
virtualNode
140+
)
141+
);
142+
});
114143
});

0 commit comments

Comments
 (0)