Skip to content
This repository was archived by the owner on Jun 26, 2020. It is now read-only.

Commit 3a164b7

Browse files
authoredJul 12, 2019
Fix: Screen reader will now properly prompt errors for text inputs. Closes ckeditor/ckeditor5#1406.
2 parents e24da36 + 4b027a6 commit 3a164b7

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed
 

‎src/labeledinput/labeledinputview.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,8 @@ export default class LabeledInputView extends View {
210210
bind.if( 'errorText', 'ck-labeled-input__status_error' ),
211211
bind.if( '_statusText', 'ck-hidden', value => !value )
212212
],
213-
id: statusUid
213+
id: statusUid,
214+
role: bind.if( 'errorText', 'alert' )
214215
},
215216
children: [
216217
{

‎tests/labeledinput/labeledinputview.js

+4
Original file line numberDiff line numberDiff line change
@@ -93,11 +93,13 @@ describe( 'LabeledInputView', () => {
9393
view.errorText = '';
9494
expect( statusElement.classList.contains( 'ck-hidden' ) ).to.be.true;
9595
expect( statusElement.classList.contains( 'ck-labeled-input__status_error' ) ).to.be.false;
96+
expect( statusElement.hasAttribute( 'role' ) ).to.be.false;
9697
expect( statusElement.innerHTML ).to.equal( '' );
9798

9899
view.errorText = 'foo';
99100
expect( statusElement.classList.contains( 'ck-hidden' ) ).to.be.false;
100101
expect( statusElement.classList.contains( 'ck-labeled-input__status_error' ) ).to.be.true;
102+
expect( statusElement.getAttribute( 'role' ) ).to.equal( 'alert' );
101103
expect( statusElement.innerHTML ).to.equal( 'foo' );
102104
} );
103105

@@ -107,11 +109,13 @@ describe( 'LabeledInputView', () => {
107109
view.infoText = '';
108110
expect( statusElement.classList.contains( 'ck-hidden' ) ).to.be.true;
109111
expect( statusElement.classList.contains( 'ck-labeled-input__status_error' ) ).to.be.false;
112+
expect( statusElement.hasAttribute( 'role' ) ).to.be.false;
110113
expect( statusElement.innerHTML ).to.equal( '' );
111114

112115
view.infoText = 'foo';
113116
expect( statusElement.classList.contains( 'ck-hidden' ) ).to.be.false;
114117
expect( statusElement.classList.contains( 'ck-labeled-input__status_error' ) ).to.be.false;
118+
expect( statusElement.hasAttribute( 'role' ) ).to.be.false;
115119
expect( statusElement.innerHTML ).to.equal( 'foo' );
116120
} );
117121
} );

0 commit comments

Comments
 (0)
This repository has been archived.