From d7cfab016fa8526f0a3ce5be4d77fb306accbc6e Mon Sep 17 00:00:00 2001 From: Thomas Rutten <30386411+T-Motion@users.noreply.github.com> Date: Tue, 7 Apr 2020 09:41:35 +0200 Subject: [PATCH] feat(overlays): add invokerRelation option (#672) --- packages/overlays/src/OverlayController.js | 6 ++++-- packages/overlays/test/OverlayController.test.js | 13 +++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/packages/overlays/src/OverlayController.js b/packages/overlays/src/OverlayController.js index a7a6f3afb..74c504ea3 100644 --- a/packages/overlays/src/OverlayController.js +++ b/packages/overlays/src/OverlayController.js @@ -246,9 +246,11 @@ export class OverlayController { this.contentNode.setAttribute('id', this._contentId); } if (this.isTooltip) { - // TODO: (@tlouisse) this could also be labelledby. if (this.invokerNode) { - this.invokerNode.setAttribute('aria-describedby', this._contentId); + this.invokerNode.setAttribute( + this.invokerRelation === 'label' ? 'aria-labelledby' : 'aria-describedby', + this._contentId, + ); } this.contentNode.setAttribute('role', 'tooltip'); } else { diff --git a/packages/overlays/test/OverlayController.test.js b/packages/overlays/test/OverlayController.test.js index 6754976b4..b4a3feccd 100644 --- a/packages/overlays/test/OverlayController.test.js +++ b/packages/overlays/test/OverlayController.test.js @@ -1167,6 +1167,19 @@ describe('OverlayController', () => { expect(ctrl.invokerNode.getAttribute('aria-describedby')).to.equal(ctrl._contentId); }); + it('adds [aria-labelledby] on invoker when invokerRelation is label', async () => { + const invokerNode = await fixture('