Compatibilité
Les navigateurs pris en charge, la position d'Ariane sur les frameworks et sur le rendu serveur.
Ariane cible les navigateurs récents, sans polyfills.
| Navigateur | Version minimale |
|---|---|
| Chrome et Edge | 125 |
| Firefox | 126 |
| Safari (macOS, iOS et iPadOS) | 17.5 |
Ces versions correspondent aux fonctionnalités de la plateforme que les composants et le thème du starter-kit utilisent :
- l'API Popover, pour les panneaux flottants (dropdown, tooltip, datepicker…) ;
- les états personnalisés (
CustomStateSetet:state()) ; ElementInternals,<dialog>et l'attributinert;- pour le thème du starter-kit :
light-dark(),color-mix(),oklch(),@layeret l'imbrication CSS.
Les tests automatisés tournent sur les dernières versions de Chromium, Firefox et WebKit, les moteurs de Chrome et Edge, de Firefox et de Safari. Les versions minimales sont déduites des données de compatibilité des fonctionnalités utilisées, pas d'un test sur chaque version. En dessous, le comportement n'est pas garanti.
Sur Chrome et Edge avant la version 125, :state() n'existe pas : les états personnalisés sont exposés avec le préfixe -- (par exemple :--open). Les styles du thème du starter-kit n'en tiennent pas compte, mais la plupart des états ont aussi un attribut équivalent ([open], [disabled]…) utilisable dans vos propres styles.
Sur Safari iOS et iPadOS avant 18.3, le tap à l'extérieur d'un panneau ne le ferme pas nativement. Ariane ajoute cette fermeture ; elle est testée en émulation, pas encore sur appareil.
Ariane est faite de Custom Elements natifs : elle ne dépend d'aucun framework et ne livre pas de wrapper. Les pages Frameworks rassemblent des constats d'intégration (React, Next.js, Vue, Angular, Svelte). Elles sont données à titre indicatif : elles décrivent des comportements propres à chaque framework, pas un périmètre de support.
Le périmètre pris en charge est celui des composants eux-mêmes : leur comportement et leur accessibilité dans les navigateurs ci-dessus. Un défaut de liaison, de typage ou de rendu qui tient au framework relève de l'application.
Pas de support officiel du rendu serveur pour l'instant : c'est une fonctionnalité à venir. Le HTML produit contient les balises et leur contenu, pas le shadow DOM des composants : ils se définissent dans le navigateur, une fois le JavaScript chargé. L'import de la librairie ne lève pas d'erreur côté serveur ; le rendu des composants côté serveur n'est ni pris en charge ni testé.