File tree 2 files changed +16
-10
lines changed
2 files changed +16
-10
lines changed Original file line number Diff line number Diff line change 1
1
{
2
2
"name" : " vue-a11y-click" ,
3
- "version" : " 0.0.3 " ,
3
+ "version" : " 0.0.4 " ,
4
4
"description" : " Vue directive for handling click events on screen readers" ,
5
5
"main" : " src/index.js" ,
6
6
"repository" : {
Original file line number Diff line number Diff line change 1
1
const a11yClick = {
2
2
install ( Vue ) {
3
+ let handleKeyUp , handleKeyDown ;
4
+
3
5
Vue . directive ( "a11y-click" , {
4
6
bind ( el ) {
5
7
let pressed = false ;
6
8
7
- el . tabIndex = 0 ;
8
- el . setAttribute ( "role" , "button" ) ;
9
- el . setAttribute ( "aria-pressed" , "false" ) ;
10
-
11
- el . addEventListener ( "keydown" , ( ) => {
9
+ handleKeyDown = ( ) => {
12
10
// enter keycode = 13
13
11
if ( event . keyCode !== 13 || pressed ) return ;
14
12
pressed = true ;
15
13
el . setAttribute ( "aria-pressed" , "true" ) ;
16
14
el . click ( ) ;
17
- } ) ;
15
+ } ;
18
16
19
- el . addEventListener ( "keyup" , ( ) => {
17
+ handleKeyUp = ( ) => {
20
18
if ( event . keyCode !== 13 ) return ;
21
19
pressed = false ;
22
20
el . setAttribute ( "aria-pressed" , "false" ) ;
23
- } ) ;
21
+ } ;
22
+
23
+ el . tabIndex = 0 ;
24
+ el . setAttribute ( "role" , "button" ) ;
25
+ el . setAttribute ( "aria-pressed" , "false" ) ;
26
+
27
+ el . addEventListener ( "keydown" , handleKeyDown ) ;
28
+ el . addEventListener ( "keyup" , handleKeyUp ) ;
24
29
} ,
25
30
unbind ( el ) {
26
- el . removeEventListener ( "keyup" ) ;
31
+ el . removeEventListener ( "keyup" , handleKeyUp ) ;
32
+ el . removeEventListener ( "keydown" , handleKeyDown ) ;
27
33
}
28
34
} ) ;
29
35
}
You can’t perform that action at this time.
0 commit comments