@@ -15,7 +15,8 @@ const bTabButtonHelper = {
15
15
active : { type : Boolean , default : false } ,
16
16
disabled : { type : Boolean , default : false } ,
17
17
linkClass : { default : null } ,
18
- itemClass : { default : null }
18
+ itemClass : { default : null } ,
19
+ keyNav : { type : Boolean , default : false }
19
20
} ,
20
21
render ( h ) {
21
22
const link = h ( 'a' , {
@@ -26,7 +27,7 @@ const bTabButtonHelper = {
26
27
] ,
27
28
attrs : {
28
29
role : 'tab' ,
29
- tabindex : '-1' ,
30
+ tabindex : this . keyNav ? '-1' : null ,
30
31
href : this . href ,
31
32
id : this . id ,
32
33
disabled : this . disabled ,
@@ -52,6 +53,9 @@ const bTabButtonHelper = {
52
53
evt . preventDefault ( )
53
54
evt . stopPropagation ( )
54
55
}
56
+ if ( evt . type !== 'click' && ! this . keyNav ) {
57
+ return
58
+ }
55
59
if ( this . disabled ) {
56
60
stop ( )
57
61
return
@@ -86,7 +90,8 @@ export default {
86
90
posInSet : index + 1 ,
87
91
controls : this . safeId ( '_BV_tab_container_' ) ,
88
92
linkClass : tab . titleLinkClass ,
89
- itemClass : tab . titleItemClass
93
+ itemClass : tab . titleItemClass ,
94
+ keyNav : this . keyNav
90
95
} ,
91
96
on : {
92
97
click : evt => {
@@ -116,7 +121,7 @@ export default {
116
121
] ,
117
122
attrs : {
118
123
role : 'tablist' ,
119
- tabindex : '0' ,
124
+ tabindex : this . keyNav ? '0' : null ,
120
125
id : this . safeId ( '_BV_tab_controls_' )
121
126
} ,
122
127
on : { keydown : this . onKeynav }
@@ -237,6 +242,10 @@ export default {
237
242
navWrapperClass : {
238
243
type : [ String , Array , Object ] ,
239
244
default : null
245
+ } ,
246
+ keyNav : {
247
+ type : Boolean ,
248
+ default : false
240
249
}
241
250
} ,
242
251
watch : {
@@ -280,6 +289,9 @@ export default {
280
289
* handle keyboard navigation
281
290
*/
282
291
onKeynav ( evt ) {
292
+ if ( ! this . keyNav ) {
293
+ return
294
+ }
283
295
const key = evt . keyCode
284
296
const shift = evt . shiftKey
285
297
function stop ( ) {
0 commit comments