From 160bc594f516bfadb754d47ce102a02cbde12fcd Mon Sep 17 00:00:00 2001 From: Westbrook Johnson Date: Thu, 11 May 2023 09:00:55 -0400 Subject: [PATCH] fix(shared): allow "disabled" first to return to "tabindex=0" in "focusable" --- packages/button/src/ButtonBase.ts | 2 +- packages/button/test/button.test.ts | 23 +++++++++++++++++++++++ packages/swatch/src/Swatch.ts | 2 +- packages/tags/src/Tag.ts | 7 +------ tools/shared/src/focusable.ts | 2 +- 5 files changed, 27 insertions(+), 9 deletions(-) diff --git a/packages/button/src/ButtonBase.ts b/packages/button/src/ButtonBase.ts index 4bd258349f..e5584cb6df 100644 --- a/packages/button/src/ButtonBase.ts +++ b/packages/button/src/ButtonBase.ts @@ -208,7 +208,7 @@ export class ButtonBase extends ObserveSlotText(LikeAnchor(Focusable), '', [ protected override firstUpdated(changed: PropertyValues): void { super.firstUpdated(changed); if (!this.hasAttribute('tabindex')) { - this.tabIndex = 0; + this.setAttribute('tabindex', '0'); } this.manageAnchor(); this.addEventListener('keydown', this.handleKeydown); diff --git a/packages/button/test/button.test.ts b/packages/button/test/button.test.ts index 4b8593b17a..c8dbe1a83e 100644 --- a/packages/button/test/button.test.ts +++ b/packages/button/test/button.test.ts @@ -226,6 +226,29 @@ describe('Button', () => { await elementUpdated(el); expect(clickSpy.calledOnce).to.be.true; }); + it('`disabled` manages `tabindex`', async () => { + const el = await fixture