From 1c9e16af7a5dbff5a2c27ae5dbacd6a2b89254a8 Mon Sep 17 00:00:00 2001 From: Mateusz Samsel Date: Fri, 5 Jul 2019 16:05:25 +0200 Subject: [PATCH 1/2] Add role=alert for error message of input field. --- src/labeledinput/labeledinputview.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/labeledinput/labeledinputview.js b/src/labeledinput/labeledinputview.js index 90a3c87f..ba828bc5 100644 --- a/src/labeledinput/labeledinputview.js +++ b/src/labeledinput/labeledinputview.js @@ -210,7 +210,8 @@ export default class LabeledInputView extends View { bind.if( 'errorText', 'ck-labeled-input__status_error' ), bind.if( '_statusText', 'ck-hidden', value => !value ) ], - id: statusUid + id: statusUid, + role: bind.if( 'errorText', 'alert' ) }, children: [ { From 4b027a6102a12c4ab1f992bd47c17bbbf86c56bd Mon Sep 17 00:00:00 2001 From: Mateusz Samsel Date: Fri, 5 Jul 2019 16:18:07 +0200 Subject: [PATCH 2/2] Extend unit test to check 'role' attribute. --- tests/labeledinput/labeledinputview.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/labeledinput/labeledinputview.js b/tests/labeledinput/labeledinputview.js index 7f9e2613..1b12cfef 100644 --- a/tests/labeledinput/labeledinputview.js +++ b/tests/labeledinput/labeledinputview.js @@ -93,11 +93,13 @@ describe( 'LabeledInputView', () => { view.errorText = ''; expect( statusElement.classList.contains( 'ck-hidden' ) ).to.be.true; expect( statusElement.classList.contains( 'ck-labeled-input__status_error' ) ).to.be.false; + expect( statusElement.hasAttribute( 'role' ) ).to.be.false; expect( statusElement.innerHTML ).to.equal( '' ); view.errorText = 'foo'; expect( statusElement.classList.contains( 'ck-hidden' ) ).to.be.false; expect( statusElement.classList.contains( 'ck-labeled-input__status_error' ) ).to.be.true; + expect( statusElement.getAttribute( 'role' ) ).to.equal( 'alert' ); expect( statusElement.innerHTML ).to.equal( 'foo' ); } ); @@ -107,11 +109,13 @@ describe( 'LabeledInputView', () => { view.infoText = ''; expect( statusElement.classList.contains( 'ck-hidden' ) ).to.be.true; expect( statusElement.classList.contains( 'ck-labeled-input__status_error' ) ).to.be.false; + expect( statusElement.hasAttribute( 'role' ) ).to.be.false; expect( statusElement.innerHTML ).to.equal( '' ); view.infoText = 'foo'; expect( statusElement.classList.contains( 'ck-hidden' ) ).to.be.false; expect( statusElement.classList.contains( 'ck-labeled-input__status_error' ) ).to.be.false; + expect( statusElement.hasAttribute( 'role' ) ).to.be.false; expect( statusElement.innerHTML ).to.equal( 'foo' ); } ); } );