Repository: vscode
Issue: The extensions list should have the ARIA listbox role; not the list role
Labels: bug,accessibility

<!-- ⚠️⚠️ Do Not Delete This! bug_report_template ⚠️⚠️ -->
<!-- Please read our Rules of Conduct: https://opensource.microsoft.com/codeofconduct/ -->
<!-- 🕮 Read our guide about submitting issues: https://github.com/microsoft/vscode/wiki/Submitting-Bugs-and-Suggestions -->
<!-- 🔎 Search existing issues to avoid creating duplicates. -->
<!-- 🧪 Test using the latest Insiders build to see if your issue has already been fixed: https://code.visualstudio.com/insiders/ -->
<!-- 💡 Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. -->
<!-- 🔧 Launch with `code --disable-extensions` to check. -->
Does this issue occur when all extensions are disabled?: n/a

<!-- 🪓 If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. -->
<!-- 📣 Issues caused by an extension need to be reported directly to the extension publisher. The 'Help > Report Issue' dialog can assist with this. -->
- VS Code Version:  1.86.0-insider
- OS Version: Linux, Fedora 39

Steps to Reproduce:

1. Show the list of extensions in the left pane
2. Use the developer tools to examine the markup associated with the list

Expected Results: The element with `aria-label="Extensions"` would have `role="listbox"`

Actual Results: The element with `aria-label="Extensions"` has `role="list"`.

Notes:

This element also has `aria-activedescendant` (good, due to the functionality of this element), however [ `aria-activedescendant` is not a supported property of `list`](https://w3c.github.io/aria/#aria-activedescendant); it's a supported property of `listbox`. 

In addition, a [list](https://w3c.github.io/aria/#list) is:
> A [section](https://w3c.github.io/aria/#section) containing [listitem](https://w3c.github.io/aria/#listitem) elements.

A [listbox](https://w3c.github.io/aria/#listbox) is:
> A [widget](https://w3c.github.io/aria/#dfn-widget) that allows the user to select one or more items from a list of choices. See related [combobox](https://w3c.github.io/aria/#combobox) and [list](https://w3c.github.io/aria/#list).

Impact: Orca treats lists and listboxes differently. Calling the latter the former can impact what Orca presents to the user. 

One known issue is that Orca sometimes presents the wrong list item prior to presenting the newly selected/focused list item in the extensions list. The reason why is that items in the extensions list that get scrolled off-screen get removed from the accessibility tree, and the newly-visible items get added. Orca has logic to handle such removals and additions, and often does so silently. But the logic related to selectable containers (listboxes, trees, etc.) is not kicking in because of the `list` role.  That combined with a false positive in Orca is causing Orca to conclude that the user is navigating in a text list whose current item just got removed, putting the user on the next item.

I'll see about handling the false positive in Orca, but this element really needs to have the `listbox` role.

@isidorn: Please and thank you. And also happy new year!