L’attribut contenteditable="plaintext-only"
en HTML offre une alternative sécurisée et simplifiée à contenteditable="true"
: il permet de rendre un élément modifiable par l’utilisateur, mais en ne conservant que du texte brut, sans aucun formatage HTML ni balises (comme <script>
, <b>
, etc.). Contrairement à la valeur par défaut, qui accepte tout code HTML collé ou saisi (avec les risques de failles XSS ou de styles indésirables), plaintext-only
supprime automatiquement tout balisage, garantissant un contenu propre et prévisible. Idéal pour les champs de titre, commentaires ou tags dans un CMS, il simplifie aussi la récupération du contenu en JavaScript (textContent
et innerHTML
renvoient la même chose). Bien que pratique, il ne dispense pas d’une validation côté serveur, car l’attribut peut être contourné. Compatible avec les navigateurs modernes, il évite les surprises tout en restant simple à implémenter.
Symfony 7 utilise les attributes PHP (syntaxe #[...]
) pour remplacer les annotations et déclarer des métadonnées directement dans le code. L’article montre comment créer des attributes sur mesure (ex : #[Audit]
pour le logging, #[FeatureToggle]
pour gérer des fonctionnalités, #[RequiresRole]
pour la sécurité, #[Throttle]
pour limiter les requêtes) et les exploiter via des event listeners. Ces outils simplifient la maintenance, évitent la duplication de code et rendent le comportement du code plus explicite. Les attributes peuvent aussi cibler des classes et être packagés en bundles réutilisables. Une fonctionnalité puissante pour structurer vos applications Symfony de manière déclarative et élégante.
L’attribut HTML hidden="until-found"
permet de masquer du contenu tout en le rendant accessible via la recherche dans la page (Ctrl+F
). Contrairement à display: none
ou visibility: hidden
, il utilise content-visibility: hidden
en interne, ce qui cache visuellement le contenu sans l’exclure des résultats de recherche. Utile pour des cas comme des accordéons ou des sections cachées, il est déjà supporté par Chrome, Firefox et bientôt Safari. Une alternative à <details>
pour des contenus masqués mais "trouvables", avec des polyfills possibles via le Shadow DOM en attendant une adoption universelle. Une future pseudo-classe ::search-text
pourrait même permettre de styliser les correspondances de recherche.
Les attributs PHP, introduits avec PHP 8.0, remplacent les annotations DocBlock par une syntaxe plus propre et officielle, utilisant des crochets. Cela améliore la lisibilité du code et facilite l'intégration avec les outils de développement. Symfony, à partir de la version 5.2, a adopté cette approche pour diverses fonctionnalités comme la définition de routes, la validation d'entités, et la gestion de la sécurité, rendant le code plus moderne et maintenable.
5 attributs HTML pour améliorer l'accessibilité :
- hreflang -> indique la langue de la page pointée par un lien
- translate -> si on met "no" on indique que le terme ne doit pas être traduit (pratique pour les noms de ville, etc.)
- reversed -> utile pour les éléments ordonnées
- controls -> affiche les contrôles pour les vidéos ou la musique
- autocomplete -> indique au navigateur d'afficher l'autocomplétion, on peut même préciser où chercher (nom du champ)
Une liste des attributs bien pratiques de l'élément input
Tout est dans le titre
Sans cet attribut, l'accès aux ressources de la page appelante par l'iframe est permis !
Tout est dans le titre
Tout est dans le titre
Les attributs à ajouter pour améliorer l'expérience utilisateur lors de la saisie d'information. Par exemple, pour l'email, ça donnerait :
Il s'agit d'attributs pour les éléments de formulaire