@@ -20,6 +20,7 @@ var _ = function (input, o) {
2020
2121 this . input = $ ( input ) ;
2222 this . input . setAttribute ( "autocomplete" , "off" ) ;
23+ this . input . setAttribute ( "aria-expanded" , "false" ) ;
2324 this . input . setAttribute ( "aria-owns" , "awesomplete_list_" + this . count ) ;
2425 this . input . setAttribute ( "role" , "combobox" ) ;
2526
@@ -76,10 +77,10 @@ var _ = function (input, o) {
7677 if ( me . opened ) {
7778 if ( c === 13 && me . selected ) { // Enter
7879 evt . preventDefault ( ) ;
79- me . select ( ) ;
80+ me . select ( undefined , undefined , evt ) ;
8081 }
8182 else if ( c === 9 && me . selected && me . tabSelect ) {
82- me . select ( ) ;
83+ me . select ( undefined , undefined , evt ) ;
8384 }
8485 else if ( c === 27 ) { // Esc
8586 me . close ( { reason : "esc" } ) ;
@@ -113,7 +114,7 @@ var _ = function (input, o) {
113114
114115 if ( li && evt . button === 0 ) { // Only select on left click
115116 evt . preventDefault ( ) ;
116- me . select ( li , evt . target ) ;
117+ me . select ( li , evt . target , evt ) ;
117118 }
118119 }
119120 }
@@ -180,6 +181,7 @@ _.prototype = {
180181 return ;
181182 }
182183
184+ this . input . setAttribute ( "aria-expanded" , "false" ) ;
183185 this . ul . setAttribute ( "hidden" , "" ) ;
184186 this . isOpened = false ;
185187 this . index = - 1 ;
@@ -190,6 +192,7 @@ _.prototype = {
190192 } ,
191193
192194 open : function ( ) {
195+ this . input . setAttribute ( "aria-expanded" , "true" ) ;
193196 this . ul . removeAttribute ( "hidden" ) ;
194197 this . isOpened = true ;
195198
@@ -266,7 +269,7 @@ _.prototype = {
266269 }
267270 } ,
268271
269- select : function ( selected , origin ) {
272+ select : function ( selected , origin , originalEvent ) {
270273 if ( selected ) {
271274 this . index = $ . siblingIndex ( selected ) ;
272275 } else {
@@ -278,14 +281,16 @@ _.prototype = {
278281
279282 var allowed = $ . fire ( this . input , "awesomplete-select" , {
280283 text : suggestion ,
281- origin : origin || selected
284+ origin : origin || selected ,
285+ originalEvent : originalEvent
282286 } ) ;
283287
284288 if ( allowed ) {
285289 this . replace ( suggestion ) ;
286290 this . close ( { reason : "select" } ) ;
287291 $ . fire ( this . input , "awesomplete-selectcomplete" , {
288- text : suggestion
292+ text : suggestion ,
293+ originalEvent : originalEvent
289294 } ) ;
290295 }
291296 }
@@ -369,8 +374,9 @@ _.ITEM = function (text, input, item_id) {
369374 var html = input . trim ( ) === "" ? text : text . replace ( RegExp ( $ . regExpEscape ( input . trim ( ) ) , "gi" ) , "<mark>$&</mark>" ) ;
370375 return $ . create ( "li" , {
371376 innerHTML : html ,
377+ "role" : "option" ,
372378 "aria-selected" : "false" ,
373- "id" : "awesomplete_list_" + this . count + "_item_" + item_id
379+ "id" : "awesomplete_list_" + this . count + "_item_" + item_id
374380 } ) ;
375381} ;
376382
0 commit comments