diff --git a/src/autocomplete/popup.js b/src/autocomplete/popup.js index 01fd01f04e2..5fd15bc7221 100644 --- a/src/autocomplete/popup.js +++ b/src/autocomplete/popup.js @@ -50,8 +50,9 @@ class AcePopup { popup.renderer.setStyle("ace_autocomplete"); // Set aria attributes for the popup - popup.renderer.container.setAttribute("role", "listbox"); - popup.renderer.container.setAttribute("aria-label", nls("Autocomplete suggestions")); + popup.renderer.$textLayer.element.setAttribute("role", "listbox"); + popup.renderer.$textLayer.element.setAttribute("aria-label", nls("Autocomplete suggestions")); + popup.renderer.textarea.setAttribute("aria-hidden", "true"); popup.setOption("displayIndentGuides", false); popup.setOption("dragDelay", 150); @@ -133,12 +134,12 @@ class AcePopup { dom.addCssClass(selected, "ace_selected"); var ariaId = getAriaId(row); selected.id = ariaId; - popup.renderer.container.setAttribute("aria-activedescendant", ariaId); + t.element.setAttribute("aria-activedescendant", ariaId); el.setAttribute("aria-activedescendant", ariaId); selected.setAttribute("role", "option"); selected.setAttribute("aria-label", popup.getData(row).value); selected.setAttribute("aria-setsize", popup.data.length); - selected.setAttribute("aria-posinset", row); + selected.setAttribute("aria-posinset", row+1); selected.setAttribute("aria-describedby", "doc-tooltip"); } }); diff --git a/src/autocomplete_test.js b/src/autocomplete_test.js index 2b13d575f3f..11d2f980a98 100644 --- a/src/autocomplete_test.js +++ b/src/autocomplete_test.js @@ -48,16 +48,16 @@ module.exports = { assert.ok(!editor.container.querySelector("style")); sendKey("a"); - checkInnerHTML('arraysort localalooooooooooooooooooooooooooooong_word local', function() { + checkInnerHTML('arraysort localalooooooooooooooooooooooooooooong_word local', function() { sendKey("rr"); - checkInnerHTML('arraysort local', function() { + checkInnerHTML('arraysort local', function() { sendKey("r"); - checkInnerHTML('arraysort local', function() { + checkInnerHTML('arraysort local', function() { sendKey("Return"); assert.equal(editor.getValue(), "arraysort\narraysort alooooooooooooooooooooooooooooong_word"); editor.execCommand("insertstring", " looooooooooooooooooooooooooooong_"); - checkInnerHTML('alooooooooooooooooooooooooooooong_word local', function() { + checkInnerHTML('alooooooooooooooooooooooooooooong_word local', function() { sendKey("Return"); editor.destroy(); editor.container.remove();