From b92daf2f50224a362215477341d7d10a4eb39734 Mon Sep 17 00:00:00 2001 From: TarunAdobe Date: Fri, 21 Jul 2023 17:20:36 +0530 Subject: [PATCH] fix(number-field): update button label to use number-field-labels as part of the text (#3474) * fix(number-field): update button label text * fix(field-label): updated conditions to apply target labels on focusable elements * fix(textfield): update textfield to use appliedlabel incase of no focuselementlabel * fix(number-field): added test to check labels on buttons * fix(number-field): fixed code styling issues --------- Co-authored-by: Tarun Tomar --- packages/number-field/src/NumberField.ts | 10 ++++- .../number-field/test/number-field.test.ts | 44 ++++++++++++++++++- packages/textfield/src/Textfield.ts | 11 ++++- 3 files changed, 60 insertions(+), 5 deletions(-) diff --git a/packages/number-field/src/NumberField.ts b/packages/number-field/src/NumberField.ts index 02b34734e8..7c5ef9de2f 100644 --- a/packages/number-field/src/NumberField.ts +++ b/packages/number-field/src/NumberField.ts @@ -549,6 +549,10 @@ export class NumberField extends TextfieldBase { return this.focused ? this._numberParserFocused : this._numberParser; } + applyFocusElementLabel = (value?: string): void => { + this.appliedLabel = value; + }; + private _numberParser?: NumberParser; private _numberParserFocused?: NumberParser; @@ -587,7 +591,8 @@ export class NumberField extends TextfieldBase { > { await clickBySelector(el, '.step-down'); }); }); + describe('accessibility model', () => { + it('buttons have proper label', async () => { + await fixture(html` +
+ ${Default({ + onChange: () => { + return; + }, + })} +
+ `); + + type NamedNode = { name: string }; + const snapshot = (await a11ySnapshot( + {} + )) as unknown as NamedNode & { + children: NamedNode[]; + }; + + expect( + findAccessibilityNode( + snapshot, + (node) => node.name === 'Increase Enter a number' + ), + '`name` is the label text' + ).to.not.be.null; + + expect( + findAccessibilityNode( + snapshot, + (node) => node.name === 'Decrease Enter a number' + ), + '`name` is the label text' + ).to.not.be.null; + }); + }); }); diff --git a/packages/textfield/src/Textfield.ts b/packages/textfield/src/Textfield.ts index c01dac090a..e64fa7c187 100644 --- a/packages/textfield/src/Textfield.ts +++ b/packages/textfield/src/Textfield.ts @@ -52,6 +52,9 @@ export class TextfieldBase extends ManageHelpText( return [textfieldStyles, checkmarkStyles]; } + @state() + appliedLabel?: string; + @property({ attribute: 'allowed-keys' }) allowedKeys = ''; @@ -235,7 +238,9 @@ export class TextfieldBase extends ManageHelpText(