Skip to content

Commit

Permalink
fix: updates support for aria-required attribute in to-be-required
Browse files Browse the repository at this point in the history
…method
  • Loading branch information
JatinRanka committed Mar 12, 2024
1 parent a93c0c4 commit 2e5b99a
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 14 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -379,6 +379,7 @@ attribute.
<textarea data-testid="textarea" required></textarea>
<div data-testid="supported-role" role="tree" required></div>
<div data-testid="supported-role-aria" role="tree" aria-required="true"></div>
<div data-testid="without-aria-role" aria-required="true"></div>
```

```javascript
Expand All @@ -392,6 +393,7 @@ expect(getByTestId('select')).toBeRequired()
expect(getByTestId('textarea')).toBeRequired()
expect(getByTestId('supported-role')).not.toBeRequired()
expect(getByTestId('supported-role-aria')).toBeRequired()
expect(queryByTestId('without-aria-role')).toBeRequired()
```

<hr />
Expand Down
2 changes: 2 additions & 0 deletions src/__tests__/to-be-required.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ test('.toBeRequired', () => {
<textarea data-testid="textarea" required></textarea>
<div data-testid="supported-role" role="tree" required></div>
<div data-testid="supported-role-aria" role="tree" aria-required="true"></div>
<div data-testid="without-aria-role" aria-required="true"></div>
</div>
`)

Expand All @@ -26,6 +27,7 @@ test('.toBeRequired', () => {
expect(queryByTestId('textarea')).toBeRequired()
expect(queryByTestId('supported-role')).not.toBeRequired()
expect(queryByTestId('supported-role-aria')).toBeRequired()
expect(queryByTestId('without-aria-role')).toBeRequired()

// negative test cases wrapped in throwError assertions for coverage.
expect(() =>
Expand Down
15 changes: 1 addition & 14 deletions src/to-be-required.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@ import {checkHtmlElement, getTag} from './utils'
// form elements that support 'required'
const FORM_TAGS = ['select', 'textarea']

const ARIA_FORM_TAGS = ['input', 'select', 'textarea']

const UNSUPPORTED_INPUT_TYPES = [
'color',
'hidden',
Expand All @@ -14,14 +12,6 @@ const UNSUPPORTED_INPUT_TYPES = [
'reset',
]

const SUPPORTED_ARIA_ROLES = [
'combobox',
'gridcell',
'radiogroup',
'spinbutton',
'tree',
]

function isRequiredOnFormTagsExceptInput(element) {
return FORM_TAGS.includes(getTag(element)) && element.hasAttribute('required')
}
Expand All @@ -39,10 +29,7 @@ function isRequiredOnSupportedInput(element) {
function isElementRequiredByARIA(element) {
return (
element.hasAttribute('aria-required') &&
element.getAttribute('aria-required') === 'true' &&
(ARIA_FORM_TAGS.includes(getTag(element)) ||
(element.hasAttribute('role') &&
SUPPORTED_ARIA_ROLES.includes(element.getAttribute('role'))))
element.getAttribute('aria-required') === 'true'
)
}

Expand Down

0 comments on commit 2e5b99a

Please sign in to comment.