@@ -7,6 +7,7 @@ var event = require("../lib/event");
7
7
var lang = require ( "../lib/lang" ) ;
8
8
var dom = require ( "../lib/dom" ) ;
9
9
var nls = require ( "../config" ) . nls ;
10
+ var userAgent = require ( "./../lib/useragent" ) ;
10
11
11
12
var getAriaId = function ( index ) {
12
13
return `suggest-aria-id:${ index } ` ;
@@ -50,8 +51,8 @@ class AcePopup {
50
51
popup . renderer . setStyle ( "ace_autocomplete" ) ;
51
52
52
53
// Set aria attributes for the popup
53
- popup . renderer . $textLayer . element . setAttribute ( "role" , "listbox" ) ;
54
- popup . renderer . $textLayer . element . setAttribute ( "aria-label " , nls ( "Autocomplete suggestions" ) ) ;
54
+ popup . renderer . $textLayer . element . setAttribute ( "role" , userAgent . isSafari ? "menu" : "listbox" ) ;
55
+ popup . renderer . $textLayer . element . setAttribute ( "aria-roledescription " , nls ( "Autocomplete suggestions" ) ) ;
55
56
popup . renderer . textarea . setAttribute ( "aria-hidden" , "true" ) ;
56
57
57
58
popup . setOption ( "displayIndentGuides" , false ) ;
@@ -137,7 +138,8 @@ class AcePopup {
137
138
selected . id = ariaId ;
138
139
t . element . setAttribute ( "aria-activedescendant" , ariaId ) ;
139
140
el . setAttribute ( "aria-activedescendant" , ariaId ) ;
140
- selected . setAttribute ( "role" , "option" ) ;
141
+ selected . setAttribute ( "role" , userAgent . isSafari ? "menuitem" : "option" ) ;
142
+ selected . setAttribute ( "aria-roledescription" , nls ( "item" ) ) ;
141
143
selected . setAttribute ( "aria-label" , popup . getData ( row ) . value ) ;
142
144
selected . setAttribute ( "aria-setsize" , popup . data . length ) ;
143
145
selected . setAttribute ( "aria-posinset" , row + 1 ) ;
0 commit comments