Question d'entretien pour Développeur frontend

Qu'est-ce que le HTML sémantique vous apporte qu'une div avec des attributs ARIA n'apporte pas ?

Ce que le recruteur cherche à évaluer, comment structurer votre réponse et un exemple parlé à adapter.

Réponse rapide

Les éléments natifs viennent avec du comportement en plus de la sémantique : un button est focalisable, se déclenche sur Entrée et Espace, participe aux formulaires et expose gratuitement le bon rôle et le bon état. Une div avec role button récupère l'étiquette mais aucun comportement, donc vous ajoutez vous-même tabindex, la gestion clavier et l'état désactivé, et chacun peut mal tourner. La première règle d'ARIA, c'est de ne pas utiliser ARIA quand le HTML fait déjà le travail.

Pourquoi les recruteurs posent cette question

Les questions d'accessibilité séparent ceux qui ont lancé un audit automatique une fois de ceux qui construisent vraiment des composants utilisables. Le recruteur veut entendre qu'ARIA change ce qui est annoncé mais n'ajoute jamais de comportement clavier ni de gestion du focus. Citer un cas réel, comme un faux bouton qu'on ne peut pas atteindre au clavier, prouve que vous avez testé au clavier ou au lecteur d'écran plutôt que de vous fier à un score Lighthouse vert.

Comment structurer votre réponse

  • Posez la séparation : le natif donne sémantique plus comportement, ARIA ne fait que réétiqueter.
  • Listez ce que vous devez réimplémenter quand vous utilisez une div.
  • Citez la règle qui dit de ne pas utiliser ARIA quand le HTML existe.
  • Donnez un exemple où un élément natif vous a vraiment épargné du travail.

Exemple de réponse

Exemple parlé, à la première personne

ARIA ne change que ce qui est exposé à l'arbre d'accessibilité. Ça ne rend rien focalisable, ça n'ajoute pas de gestion des touches, et ça ne gère pas le focus. Donc dès que j'écris une div avec role button, je me suis engagé sur tabindex zéro, un gestionnaire pour Entrée et Espace, un état aria disabled que je dois aussi faire respecter dans le gestionnaire, et je n'ai toujours pas la soumission de formulaire. Un vrai button me donne tout ça et reste correct quand le navigateur évolue. Donc mon réflexe est le natif d'abord : button, a avec un vrai href, input avec un label associé, dialog pour les modales, details pour un simple dépliage. Je vais chercher ARIA quand il n'y a vraiment pas d'équivalent natif, comme un jeu d'onglets ou une combobox, et là je suis le motif des authoring practices plutôt que d'improviser des rôles. Le bug que je vois le plus souvent, c'est une div cliquable dans une ligne de tableau qu'un utilisateur au clavier ne peut tout simplement pas atteindre, et ça passe tous les contrôles automatiques parce que rien dans le balisage n'est techniquement faux.

Vous passez cet entretien bientôt ? GhostPilot écoute votre appel en direct, repère la question dès qu'elle est posée et affiche une réponse structurée à l'écran en temps réel. Essayez-le lors de votre prochain entretien blanc, ou prenez un Session Pass à $29, sans abonnement, pour le jour J.

Voir comment ça marche

Questions de relance à prévoir

  • Comment rendriez-vous un composant d'onglets personnalisé accessible au clavier ?
  • Que fait aria hidden, et quand cause-t-il du tort ?
  • Comment testez-vous ça au-delà d'un scanner automatique ?

Autres questions pour Développeur frontend

Votre recruteur posera sa propre version de celle-ci. Collez votre véritable fiche de poste dans le Question Predictor gratuit et obtenez les 20 questions que ce poste a le plus de chances de poser, avec ce que chacune cherche vraiment à sonder.

Prédire mes questions

Répétez les questions difficiles avant qu'on vous les pose

Entraînez-vous avec un copilote en direct, puis présentez-vous prêt. Un Session Pass à $29 vous accompagne pendant l'entretien, sans abonnement et sans engagement.

Obtenir GhostPilot