From 24ccd8810008d8878649ad1e27301d8bb257bf6e Mon Sep 17 00:00:00 2001 From: Kael Date: Mon, 27 Dec 2021 20:19:34 +1100 Subject: [PATCH] fix(VMenu): don't add button role with openOnHover fixes #14377 --- .../__snapshots__/activatable.spec.ts.snap | 3 +-- packages/vuetify/src/mixins/activatable/index.ts | 2 +- packages/vuetify/src/mixins/menuable/index.ts | 14 ++++++++------ 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/packages/vuetify/src/mixins/activatable/__tests__/__snapshots__/activatable.spec.ts.snap b/packages/vuetify/src/mixins/activatable/__tests__/__snapshots__/activatable.spec.ts.snap index c4741a9bc22..e0bb8cb0188 100644 --- a/packages/vuetify/src/mixins/activatable/__tests__/__snapshots__/activatable.spec.ts.snap +++ b/packages/vuetify/src/mixins/activatable/__tests__/__snapshots__/activatable.spec.ts.snap @@ -2,8 +2,7 @@ exports[`activatable.ts should render activator slot with hover 1`] = `
- diff --git a/packages/vuetify/src/mixins/activatable/index.ts b/packages/vuetify/src/mixins/activatable/index.ts index 27cd906704c..8339d44ff23 100644 --- a/packages/vuetify/src/mixins/activatable/index.ts +++ b/packages/vuetify/src/mixins/activatable/index.ts @@ -93,7 +93,7 @@ export default baseMixins.extend({ }, genActivatorAttributes () { return { - role: 'button', + role: (this.openOnClick && !this.openOnHover) ? 'button' : undefined, 'aria-haspopup': true, 'aria-expanded': String(this.isActive), } diff --git a/packages/vuetify/src/mixins/menuable/index.ts b/packages/vuetify/src/mixins/menuable/index.ts index aae9c1a3b61..c5baf2e81a2 100644 --- a/packages/vuetify/src/mixins/menuable/index.ts +++ b/packages/vuetify/src/mixins/menuable/index.ts @@ -297,13 +297,15 @@ export default baseMixins.extend().extend({ const onClick = listeners.click - listeners.click = (e: MouseEvent & KeyboardEvent & FocusEvent) => { - if (this.openOnClick) { - onClick && onClick(e) - } + if (onClick) { + listeners.click = (e: MouseEvent & KeyboardEvent & FocusEvent) => { + if (this.openOnClick) { + onClick && onClick(e) + } - this.absoluteX = e.clientX - this.absoluteY = e.clientY + this.absoluteX = e.clientX + this.absoluteY = e.clientY + } } return listeners