Add Literal Suggestions to `ARIAMixin` and Fallback for Unknown Values
The ARIAMixin currently uses string | null for each aria property type. The reason it’s just string rather than a union of valid values is to allow for future, yet unknown, valid values.
However, in TypeScript, we can prevent string from collapsing with literal unions by using string & {}. For instance, ariaCurrent could be typed as "page" | "step" | "location" | (string & {}) | null, suggesting valid options like "page", "step", and "location" while still allowing any other string as a fallback.
There is a related closed issue here: https://github.com/microsoft/TypeScript-DOM-lib-generator/issues/1184. While that issue suggested disallowing "unknown" values, my suggestion would still permit them but make the known options more discoverable in TypeScript.
Similar suggestion with string & {} happened somewhere else, but I think in 2024 the situation is different, we already have several hardcoded enums. PR welcome.