- From: Benny Powers <notifications@github.com>
- Date: Thu, 11 May 2023 09:47:04 -0700
- To: WICG/webcomponents <webcomponents@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <WICG/webcomponents/issues/1014@github.com>
consider:
```js
class FACEInput extends HTMLElement {
static formAssociated = true;
static template = document.createElement('template');
static {
this.template.innerHTML = /*html*/`
<input aria-hidden="true">
`;
}
#internals = this.attachInternals();
constructor() {
super();
this.#internals.role = 'textfield';
this.attachShadow({ mode: 'open' })
.append(this.constructor.template.content.cloneNode(true));
// handwave: imagine we add a "Reactive controller" which handles syncing aria props
// between the shadow root input and the host element.
hookUpListenersAndAriaMixinProps(this, this.#internals);
}
}
customElements.define('fancy-input', FACEInput);
```
Thus, we have
- a FACE which acts exclusively as an input
- a shadow input which
- does the heavy ui lifting, sparing us from implementing everything with `contenteditable` etc
- has `aria-hidden="true"`
In this case, the author's _intent_ is for the host element (`fancy-input`) to act transparently as an input. BUT, the accessibility tree will report two nested textfields - one for the host (internals.role) and a nested one for the shadow input, even though it is marked by the author as `aria-hidden`.
As well, the 'hidden' input will trigger a failure for automated accessibility audits.
We should consider relaxing the rule which disallows `aria-hidden=true` and `role=presentation` for elements which are within a FACE' shadow root. This would allow FACE authors to remove focusable elements from the ax tree, imperatively delegating ARIA stuff to the host.
cc @annevk and @rniwa who had some pointed critique with regard to focus and keyboard events. If there was a way to overcome those critiques, could this be a viable (though less capable) alternative to @alice' [semantic delegate](https://github.com/alice/aom/blob/gh-pages/semantic-delegate.md) proposal
--
Reply to this email directly or view it on GitHub:
https://github.com/WICG/webcomponents/issues/1014
You are receiving this because you are subscribed to this thread.
Message ID: <WICG/webcomponents/issues/1014@github.com>
Received on Thursday, 11 May 2023 16:47:10 UTC