@@ -8,9 +8,9 @@ import { defineCustomElement } from '@vaadin/component-base/src/define.js';
8
8
import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js' ;
9
9
import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js' ;
10
10
import { TooltipController } from '@vaadin/component-base/src/tooltip-controller.js' ;
11
+ import { ItemMixin } from '@vaadin/item/src/vaadin-item-mixin.js' ;
11
12
import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js' ;
12
13
import { tabStyles } from './styles/vaadin-tab-styles.js' ;
13
- import { TabMixin } from './vaadin-tab-mixin.js' ;
14
14
15
15
/**
16
16
* `<vaadin-tab>` is a Web Component providing an accessible and customizable tab.
@@ -37,10 +37,10 @@ import { TabMixin } from './vaadin-tab-mixin.js';
37
37
* @customElement
38
38
* @extends HTMLElement
39
39
* @mixes ElementMixin
40
+ * @mixes ItemMixin
40
41
* @mixes ThemableMixin
41
- * @mixes TabMixin
42
42
*/
43
- class Tab extends TabMixin ( ThemableMixin ( ElementMixin ( PolylitMixin ( LitElement ) ) ) ) {
43
+ class Tab extends ItemMixin ( ThemableMixin ( ElementMixin ( PolylitMixin ( LitElement ) ) ) ) {
44
44
static get is ( ) {
45
45
return 'vaadin-tab' ;
46
46
}
@@ -61,9 +61,31 @@ class Tab extends TabMixin(ThemableMixin(ElementMixin(PolylitMixin(LitElement)))
61
61
ready ( ) {
62
62
super . ready ( ) ;
63
63
64
+ this . setAttribute ( 'role' , 'tab' ) ;
65
+
64
66
this . _tooltipController = new TooltipController ( this ) ;
65
67
this . addController ( this . _tooltipController ) ;
66
68
}
69
+
70
+ /**
71
+ * Override an event listener from `KeyboardMixin`
72
+ * to handle clicking anchors inside the tabs.
73
+ * @param {!KeyboardEvent } event
74
+ * @protected
75
+ * @override
76
+ */
77
+ _onKeyUp ( event ) {
78
+ const willClick = this . hasAttribute ( 'active' ) ;
79
+
80
+ super . _onKeyUp ( event ) ;
81
+
82
+ if ( willClick ) {
83
+ const anchor = this . querySelector ( 'a' ) ;
84
+ if ( anchor ) {
85
+ anchor . click ( ) ;
86
+ }
87
+ }
88
+ }
67
89
}
68
90
69
91
defineCustomElement ( Tab ) ;
0 commit comments