Lion web components is a good starting point for anyone who's interested in building a UI framework that comes with a lot of these accessibility features built-in.<p><a href="https://lion-web.netlify.app/" rel="nofollow">https://lion-web.netlify.app/</a>
This article is from a long time ago and the spec changed substantially.<p>It's now all done with properties on ElementInternals:<p><a href="https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals" rel="nofollow">https://developer.mozilla.org/en-US/docs/Web/API/ElementInte...</a><p>They also decided not to ship AccessibleNode's which is unfortunate because it removed the clearest path for canvas+wasm based UIs.<p><a href="https://github.com/WICG/aom/blob/gh-pages/explainer.md">https://github.com/WICG/aom/blob/gh-pages/explainer.md</a>
Having inputs look consistent between applications is a core plank of usability. Rolling your own custom widgets is just spending a lot of time and effort making the UI worse.
FE engineering is about making everything look like a printed pamphlet.<p>showing native elements is fine and safer. and browser should just plug the backdoors they found over the years to style them, since they are all technically click jacking attacks.<p>and all FEv will hate this comment because they don't even know what's a click jacking attack.