Skip to content

Commit faf44db

Browse files
committed
Add template literal check for getting value.
TODO: actually build out the template string so that we can check value.
1 parent 2852ce1 commit faf44db

File tree

7 files changed

+9
-1
lines changed

7 files changed

+9
-1
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "eslint-plugin-jsx-a11y",
3-
"version": "0.2.1",
3+
"version": "0.2.2",
44
"description": "A static analysis linter of jsx and their accessibility with screen readers.",
55
"keywords": [
66
"eslint",

src/util/getAttributeValue.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ const getAttributeValue = attribute => {
2121
switch (expression.type) {
2222
case 'Literal':
2323
return expression.value;
24+
case 'TemplateLiteral':
25+
// hot-fix before actually building out raw string value.
26+
return Boolean(expression.quasis) || Boolean(expression.expressions);
2427
case 'Identifier':
2528
return expression.name == 'undefined' ? undefined : expression.name;
2629
case 'ArrowFunctionExpression':

tests/src/rules/img-uses-alt.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ ruleTester.run('img-uses-alt', rule, {
3636
{ code: '<img alt={"foo"} />;', parserOptions },
3737
{ code: '<img alt={alt} />;', parserOptions },
3838
{ code: '<img ALT="foo" />;', parserOptions },
39+
{ code: '<img ALT={`This is the ${alt} text`} />;', parserOptions },
3940
{ code: '<img ALt="foo" />;', parserOptions },
4041
{ code: '<img alt="foo" salt={undefined} />;', parserOptions },
4142
{ code: '<img {...this.props} alt="foo" />', parserOptions },

tests/src/rules/no-access-key.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ ruleTester.run('no-access-key', rule, {
4444
{ code: '<div accessKey="h" {...props} />', errors: [ expectedError ], parserOptions },
4545
{ code: '<div acCesSKeY="y" />', errors: [ expectedError ], parserOptions },
4646
{ code: '<div accessKey={"y"} />', errors: [ expectedError ], parserOptions },
47+
{ code: '<div accessKey={`${y}`} />', errors: [ expectedError ], parserOptions },
4748
{ code: '<div accessKey={accessKey} />', errors: [ expectedError ], parserOptions }
4849
]
4950
});

tests/src/rules/onclick-uses-role.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ ruleTester.run('onclick-uses-role', rule, {
3636
{ code: '<div onClick={() => void 0} role="button" />;', parserOptions },
3737
{ code: '<div onClick={() => void 0} role={role} />;', parserOptions },
3838
{ code: '<div onClick={() => void 0} role={"button"} />;', parserOptions },
39+
{ code: '<div onClick={() => void 0} role={`${role}`} />;', parserOptions },
3940
{ code: '<div onClick={() => void 0} role="button" {...props} />;', parserOptions },
4041
{ code: '<div className="foo" />;', parserOptions },
4142
{ code: '<div onClick={() => void 0} role="button" aria-hidden />;', parserOptions },

tests/src/rules/redundant-alt.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ ruleTester.run('redundant-alt', rule, {
4444
{ code: '<img />', parserOptions },
4545
{ code: '<IMG />', parserOptions },
4646
{ code: '<img alt={undefined} />', parserOptions },
47+
{ code: '<img alt={`this should pass for ${now}`} />', parserOptions },
4748
{ code: '<img alt={"undefined"} />', parserOptions },
4849
{ code: '<img alt={() => {}} />', parserOptions },
4950
{ code: '<img alt={function(e){}} />', parserOptions },

tests/src/rules/use-label-for.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ ruleTester.run('use-label-for', rule, {
3636
{ code: '<label htmlFor="foo" />', parserOptions },
3737
{ code: '<label htmlFor={"foo"} />', parserOptions },
3838
{ code: '<label htmlFor={foo} />', parserOptions },
39+
{ code: '<label htmlFor={`${id}`} />', parserOptions },
3940
{ code: '<div />', parserOptions },
4041
{ code: '<label htmlFor="foo">Test!</label>', parserOptions },
4142
{ code: '<Label />', parserOptions }, // lower-case convention refers to real HTML elements.

0 commit comments

Comments
 (0)