Skip to content

Commit d0dc3c4

Browse files
authored
fix(FormField): fix aria-invalid on error false (#4043)
1 parent 1c24915 commit d0dc3c4

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

src/collections/Form/FormField.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ function FormField(props) {
100100
const ariaDescribedBy = id && error ? `${id}-error-message` : null
101101
const ariaAttrs = {
102102
'aria-describedby': ariaDescribedBy,
103-
'aria-invalid': error !== undefined ? true : undefined,
103+
'aria-invalid': error ? true : undefined,
104104
}
105105
const controlProps = { ...rest, content, children, disabled, required, type, id }
106106

test/specs/collections/Form/FormField-test.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,4 +215,35 @@ describe('FormField', () => {
215215
expect(fieldId).to.equal('testId')
216216
})
217217
})
218+
219+
describe('aria-invalid', () => {
220+
it('is not set by default', () => {
221+
shallow(<FormField control='input' />)
222+
.find('input')
223+
.should.not.have.prop('aria-invalid')
224+
})
225+
it('is not set when error is false', () => {
226+
shallow(<FormField control='input' error={false} />)
227+
.find('input')
228+
.should.not.have.prop('aria-invalid')
229+
})
230+
it('is set when error is true', () => {
231+
shallow(<FormField control='input' error />)
232+
.find('input')
233+
.should.have.prop('aria-invalid', true)
234+
})
235+
it('is is set when error object is provided', () => {
236+
shallow(
237+
<FormField
238+
control='input'
239+
error={{
240+
content: 'Error message',
241+
pointing: 'left',
242+
}}
243+
/>,
244+
)
245+
.find('input')
246+
.should.have.prop('aria-invalid', true)
247+
})
248+
})
218249
})

0 commit comments

Comments
 (0)