[Accessibility]Aria-busy shouldn't be used on listitem elements
Currently, jsTree node is presented as listitem with role 'none' that contains anchor with role 'treeitem'. For example:
<div role="tree">
<li role="none">
<a role="treeitem">
</a>
</li>
</div>
Role 'none' needed here to hide listitem from assistive technologies cause element with 'treeitem' role requires 'tree' or 'group' as direct parent.
But in case if we works with node that could be loaded with delay we are using 'aria-busy' on listitem. Hence, we receiving listitem in the next form:
<li role="none" aria-busy="true"> or <li role="none" aria-busy="false">
This could be reproduced on 'Filebrowser demo' from https://www.jstree.com/demo/ after we expand 'New node'.
Current assistive technologies use set of rules do decide if related element should be hidden. In our case by using role="none" we saying that we want to hide this listitem. In other hand assistive technologies have rule that makes elemnts with aria-attributes visible and this rule overrides rule about role="none". As result, our hidden listitem is visible again due to using aria-busy.
This produces 'Certain ARIA roles must be contained by particular parents' AXE error and might cause problems with accessibility tools.
Also, in our node structure anchor is a focusable elements and it seems its better to have aria-busy attribute on anchor instead of listitem. So instead of
<li role="none" **aria-busy="true"**><a role="treeitem"></a></li>
we wants to see
<li role="none"><a role="treeitem" **aria-busy="true"**></a></li>.
If this is appropriate fix I could prepare pull request with required changes.
Thank you for reporting this - yes, a PR would be very welcome.