Pour une entreprise, une campagne Google Ads bien conduite s’avère indispensable pour séduire de nouveaux clients. Avant de se lancer, il importe toutefois d’en connaître précisément le prix. Il est nécessaire à cet effet d’étudier le coût de chaque poste de dépense en 2025. Quel est le tarif moyen pour bénéficier des services d’une agence …
L’article Quelle somme prévoir pour réussir sa campagne Google Ads en 2025 ? est apparu en premier sur FRENCHWEB.FR.
Face à la pénurie de talents cyber, la reconversion professionnelle est une solution stratégique pour former en interne, renforcer la sécurité numérique et fidéliser les collaborateurs motivés.
En été, la mobilité accrue des collaborateurs rend les smartphones particulièrement vulnérables aux cybermenaces, dans un contexte où la cybersécurité de ces outils reste souvent négligée.
CSS, bien qu'il ne soit qu'un langage de présentation, peut parfois impacter l'expérience utilisateur des personnes utilisant des technologies d'assistance. Ironiquement, certaines propriétés CSS, conçues pour simplifier la mise en page et son accessibilité, peuvent conduire… à engendrer des soucis d'accessibilité.
Cet article passe en revue certaines propriétés CSS pouvant poser ce type de problèmes, les mécanismes sous-jacents, et surtout, comment les contourner efficacement.
On ne traitera pas des cas basiques comme l'absence de contraste, les polices illisibles, ou les problèmes de focus. Ici, on se concentre sur des pièges plus subtils liés à l'utilisation de certaines propriétés CSS spécifiques, à savoir display
et list-style
.
display
sur les éléments de tableauL'application de la propriété display
sur les éléments de tableau (<table>
, <tr>
, <td>
, <th>
) offre une flexibilité de mise en page extraordinaire, mais peut également entraîner des problèmes d'accessibilité majeurs en modifiant leur sémantique sur Safari / VoiceOver, rendant les tableaux inaccessibles. Cela concerne particulièrement les declarations display: block
, display: flex
, et display: grid
.
À savoir qu'il ne s'agit pas d'un bug, mais d'un choix de Webkit qui préconise l'utilisation de l'attribut ARIA `role` dans ce cas de figure.
/* â Safari ne reconnaît plus la rangée dans son arbre d'accessibilité */
tr {
display: grid;
}
Solution :
/* â
OK si la rangée a un rôle ARIA explicite (ici "row") */
tr[role="row"] {
display: grid;
}
En HTML :
<!-- â
Bonne pratique -->
<table>
…
<tr role="row">
<td>Donnée</td>
</tr>
…
</table>
list-style: none
sur les listesL'utilisation de list-style: none
pour supprimer les puces des listes est une pratique courante en CSS.
Cependant, cette approche peut avoir des conséquences inattendues sur l'accessibilité, particulièrement dans Safari : quand list-style: none
est appliqué, il supprime également la sémantique de liste de l'arbre d'accessibilité. VoiceOver ne reconnaît plus l'élément comme une liste, privant l'utilisateur d'informations contextuelles importantes.
/* â Safari supprime la fonction de liste */
ul {
list-style: none;
}
Solution :
/* â
Uniquement si la liste a un rôle ARIA explicite */
ul[role="list"] {
list-style: none;
}
En HTML :
<!-- â
Bonne pratique -->
<ul role="list">
<li>Élément de liste</li>
<li>Autre élément</li>
</ul>
display: contents
La propriété display: contents
est l'une des sources les plus pernicieuses de problèmes d'accessibilité. Elle retire l'élément de l'arbre de rendu tout en conservant ses enfants, ce qui peut se révéler extrêmement pratique pour les layouts complexes ou enchevêtrés (Bootstrap, si tu nous entends…).
Cependant, son utilisation sur des éléments sémantiques comme les boutons, les tableaux, les titres ou les listes entraîne une perte totale de la sémantique et de l'interaction pour les utilisateurs de technologies d'assistance.
/* â Danger : supprime la sémantique du bouton */
button {
display: contents;
}
L'impact :
Solution :
/* â
Utiliser display: contents uniquement sur des éléments non-sémantiques */
.wrapper {
display: contents; /* OK sur une div */
}
Avant de déployer votre projet, voici une checklist rapide pour garantir l'accessibilité pouvant être impactée par les styles CSS :
display: flex/grid
sur des éléments tabulaires (<table>
, <tr>
, <td>
) n'est pas utilisé sans un rôle ARIA explicitelist-style: none
est accompagné de role="list"
display: contents
sur les éléments interactifsUn reset CSS est souvent utilisé pour uniformiser les styles de base entre les navigateurs. Cependant, il est crucial de s'assurer que ces resets ne compromettent pas l'accessibilité. Voici quelques bonnes pratiques à caser pour un reset CSS accessible :
/* Reset CSS accessible */
/* Hauteur de ligne minimale pour les contenus */
body {
line-height: 1.5;
}
/* Hauteur de ligne réduite pour les éléments interactifs */
h1,
h2,
h3,
h4,
button,
input,
label {
line-height: 1.1;
}
/* Améliore la lisibilité des liens */
a:not([class]) {
text-decoration-skip-ink: auto;
}
/* Supprime les styles de liste uniquement si role="list" est explicite */
ul[role="list"],
ol[role="list"] {
list-style: none;
}
/* Masquage du contenu visuellement tout en le gardant accessible aux technologies d'assistance. */
.visually-hidden {
position: absolute !important;
width: 1px !important;
height: 1px !important;
margin: -1px !important;
overflow: hidden !important;
white-space: nowrap !important;
clip-path: inset(50%) !important;
}
/* Désactivation des animations pour les utilisateurs sensibles */
@media (prefers-reduced-motion: reduce) {
*,
::before,
::after {
transition-duration: 0s !important;
transition-delay: 0s !important;
animation-duration: 1ms !important;
animation-delay: -1ms !important;
animation-iteration-count: 1 !important;
background-attachment: initial !important;
scroll-behavior: auto !important;
}
}
Si vous voulez découvrir le fichier "Reset" employé chez Alsacréations, n'hésitez pas à vous rendre sur notre mini-projet reset.alsacreations.com qui décrit en détail la composition et l'usage de ce fichier chez nous.
L'accessibilité en CSS n'est pas qu'une question de bonnes intentions, c'est un domaine technique qui nécessite — notamment — une compréhension approfondie des interactions entre les propriétés CSS et les technologies d'assistance. Les propriétés ou valeurs modernes comme display: contents
, bien qu'utiles, peuvent créer des barrières d'accessibilité si elles ne sont pas utilisées avec précaution.
La règle d'or : testez toujours avec de vraies technologies d'assistance, et gardez en tête que ce qui fonctionne visuellement peut être complètement cassé pour un utilisateur de lecteur d'écran.
CSS, bien qu'il ne soit qu'un langage de présentation, peut parfois impacter l'expérience utilisateur des personnes utilisant des technologies d'assistance. Ironiquement, certaines propriétés CSS, conçues pour simplifier la mise en page et son accessibilité, peuvent conduire… à engendrer des soucis d'accessibilité.
Cet article passe en revue certaines propriétés CSS pouvant poser ce type de problèmes, les mécanismes sous-jacents, et surtout, comment les contourner efficacement.
On ne traitera pas des cas basiques comme l'absence de contraste, les polices illisibles, ou les problèmes de focus. Ici, on se concentre sur des pièges plus subtils liés à l'utilisation de certaines propriétés CSS spécifiques, à savoir display
et list-style
.
display
sur les éléments de tableauL'application de la propriété display
sur les éléments de tableau (<table>
, <tr>
, <td>
, <th>
) offre une flexibilité de mise en page extraordinaire, mais peut également entraîner des problèmes d'accessibilité majeurs en modifiant leur sémantique sur Safari / VoiceOver, rendant les tableaux inaccessibles. Cela concerne particulièrement les declarations display: block
, display: flex
, et display: grid
.
À savoir qu'il ne s'agit pas d'un bug, mais d'un choix de Webkit qui préconise l'utilisation de l'attribut ARIA `role` dans ce cas de figure.
/* â Safari ne reconnaît plus la rangée dans son arbre d'accessibilité */
tr {
display: grid;
}
Solution :
/* â
OK si la rangée a un rôle ARIA explicite (ici "row") */
tr[role="row"] {
display: grid;
}
En HTML :
<!-- â
Bonne pratique -->
<table>
…
<tr role="row">
<td>Donnée</td>
</tr>
…
</table>
list-style: none
sur les listesL'utilisation de list-style: none
pour supprimer les puces des listes est une pratique courante en CSS.
Cependant, cette approche peut avoir des conséquences inattendues sur l'accessibilité, particulièrement dans Safari : quand list-style: none
est appliqué, il supprime également la sémantique de liste de l'arbre d'accessibilité. VoiceOver ne reconnaît plus l'élément comme une liste, privant l'utilisateur d'informations contextuelles importantes.
/* â Safari supprime la fonction de liste */
ul {
list-style: none;
}
Solution :
/* â
Uniquement si la liste a un rôle ARIA explicite */
ul[role="list"] {
list-style: none;
}
En HTML :
<!-- â
Bonne pratique -->
<ul role="list">
<li>Élément de liste</li>
<li>Autre élément</li>
</ul>
display: contents
La propriété display: contents
est l'une des sources les plus pernicieuses de problèmes d'accessibilité. Elle retire l'élément de l'arbre de rendu tout en conservant ses enfants, ce qui peut se révéler extrêmement pratique pour les layouts complexes ou enchevêtrés (Bootstrap, si tu nous entends…).
Cependant, son utilisation sur des éléments sémantiques comme les boutons, les tableaux, les titres ou les listes entraîne une perte totale de la sémantique et de l'interaction pour les utilisateurs de technologies d'assistance.
/* â Danger : supprime la sémantique du bouton */
button {
display: contents;
}
L'impact :
Solution :
/* â
Utiliser display: contents uniquement sur des éléments non-sémantiques */
.wrapper {
display: contents; /* OK sur une div */
}
Avant de déployer votre projet, voici une checklist rapide pour garantir l'accessibilité pouvant être impactée par les styles CSS :
display: flex/grid
sur des éléments tabulaires (<table>
, <tr>
, <td>
) n'est pas utilisé sans un rôle ARIA explicitelist-style: none
est accompagné de role="list"
display: contents
sur les éléments interactifsUn reset CSS est souvent utilisé pour uniformiser les styles de base entre les navigateurs. Cependant, il est crucial de s'assurer que ces resets ne compromettent pas l'accessibilité. Voici quelques bonnes pratiques à caser pour un reset CSS accessible :
/* Reset CSS accessible */
/* Hauteur de ligne minimale pour les contenus */
body {
line-height: 1.5;
}
/* Hauteur de ligne réduite pour les éléments interactifs */
h1,
h2,
h3,
h4,
button,
input,
label {
line-height: 1.1;
}
/* Améliore la lisibilité des liens */
a:not([class]) {
text-decoration-skip-ink: auto;
}
/* Supprime les styles de liste uniquement si role="list" est explicite */
ul[role="list"],
ol[role="list"] {
list-style: none;
}
/* Masquage du contenu visuellement tout en le gardant accessible aux technologies d'assistance. */
.visually-hidden {
position: absolute !important;
width: 1px !important;
height: 1px !important;
margin: -1px !important;
overflow: hidden !important;
white-space: nowrap !important;
clip-path: inset(50%) !important;
}
/* Désactivation des animations pour les utilisateurs sensibles */
@media (prefers-reduced-motion: reduce) {
*,
::before,
::after {
transition-duration: 0s !important;
transition-delay: 0s !important;
animation-duration: 1ms !important;
animation-delay: -1ms !important;
animation-iteration-count: 1 !important;
background-attachment: initial !important;
scroll-behavior: auto !important;
}
}
Si vous voulez découvrir le fichier "Reset" employé chez Alsacréations, n'hésitez pas à vous rendre sur notre mini-projet reset.alsacreations.com qui décrit en détail la composition et l'usage de ce fichier chez nous.
L'accessibilité en CSS n'est pas qu'une question de bonnes intentions, c'est un domaine technique qui nécessite — notamment — une compréhension approfondie des interactions entre les propriétés CSS et les technologies d'assistance. Les propriétés ou valeurs modernes comme display: contents
, bien qu'utiles, peuvent créer des barrières d'accessibilité si elles ne sont pas utilisées avec précaution.
La règle d'or : testez toujours avec de vraies technologies d'assistance, et gardez en tête que ce qui fonctionne visuellement peut être complètement cassé pour un utilisateur de lecteur d'écran.
Want to boost your website’s conversions? The secret might just be in how you format your text! From strategic bolding and short sentences to using images, videos, and whitespace, these simple design tweaks can transform user experience and drive real results.
L'expérience client : la clé de votre e-commerce. Découvrez comment optimiser chaque interaction pour fidéliser et augmenter vos ventes. Des stratégies concrètes pour PME pour une croissance accélérée.
La période estivale est un moment rare pour lever la tête et réfléchir aux fondamentaux. Façon devoirs de vacances, voici quelques réflexions stratégiques à méditer pour les dirigeants du retail.
Alors que le commerce en ligne ne cesse d'évoluer, les enseignes physiques sont confrontées à un double défi : conserver leur attractivité tout en répondant aux nouvelles attentes des consommateurs.
La liquidation de Monster Europe est désormais inévitable, près d’un an après la création d’une joint-venture entre Monster et CareerBuilder, les actionnaires Randstad (49 %) et Apollo (51 %) ont interrompu tout soutien financier à l’ex-pionnier du recrutement en ligne, condamnant son activité sur le continent. En France, plus de 200 salariés sont concernés par …
L’article Monster Europe en voie de liquidation, Randstad et Apollo face à leurs responsabilités est apparu en premier sur FRENCHWEB.FR.
Maîtrisez les secrets du CRO pour un e-commerce rentable : fluidifiez le parcours, renforcez la confiance, incitez à l'achat et testez sans cesse. Chaque visite doit devenir une vente.
Les équipes financières font face à de nombreux défis, mais des solutions comme l'automatisation et l'IA émergent pour répondre aux exigences croissantes et à la transformation numérique.
Les tensions sur la politique tarifaire repartent de plus belle, les entreprises n'ont d'autre choix que d'envisager de répercuter une partie des coûts sur leurs clients. Mais est-ce la bonne option ?
"Pay by bank" : un terme clair et universel pour désigner le paiement bancaire direct, simplifier l'expérience utilisateur et accélérer l'adoption en Europe face à la confusion actuelle.
Nous avons tous déjà vécu cela : vous cliquez sur l’icône Chrome, puis… vous attendez. Cette attente qui semble interminable avant que votre page d’accueil ne s’affiche enfin peut être frustrante. Vous en avez assez de cette attente ? Dans cet article, nous allons voir comment optimiser Chrome pour qu’il démarre plus rapidement. Activer le préchargement des pages Web L’une des premières choses à faire pour accélérer le démarrage de Google Chrome est d’activer le préchargement des pages Web. Cette fonctionnalité permet à Chrome d’anticiper le chargement des pages que vous êtes susceptible de visiter, afin de commencer à les ...
Chaque jour, des millions de professionnels publient sur les réseaux sociaux avec des résultats souvent mitigés mais il existe des leviers pour inverser la tendance.
A few weekends ago, I launched a Shopify app on my own — not to prove I could code, but to solve a real merchant pain point. I had no dev team, no startup budget — just a clear understanding of the problem, a few AI tools, and the instincts of a designer.
The Model Context Protocol (MCP) is an open standard. It acts like a universal connector for AI applications that will allow them to communicate with external data sources or other tools. So instead of building custom integrations for each of these data sources or tools, MCP provides a standardized way for AI models to access the information they need to provide better and more relevant responses.
Let’s learn how to create an SVG viewer with HTML, CSS, and JavaScript. We’ll be able to write, paste, and edit SVG code, then preview and export the SVGs.
Let’s be honest for a second. Most “free Lightroom preset” packs are garbage. They’re either a bait-and-switch for a paid bundle, or they’re so over-the-top they make your photos look like a cartoon parody from 2014. As a designer, your eye is trained for nuance, for balance, for an aesthetic that communicates something. Slapping a garish, one-size-fits-all filter on your work just feels… wrong.
Learn how to create an interactive 3D text effect where letters explode into dynamic shapes using Three.js, WebGPU, and Three Shader Language (TSL).
It was a warm September night somewhere outside of Nashville. The campfire crackled, and because I can’t help myself I plucked away at my acoustic guitar. Based on the laughter emanating from our circle and into the woods, you wouldn’t know that the people sitting around the fire had just met each other a few days prior. Conversation about life, design, music, and technology blurred together, and inside jokes were...
Event listeners are essential for interactivity in JavaScript, but they can quietly cause memory leaks if not removed properly. And what if your event listener needs parameters? That’s where things get interesting. Amejimaobari Ollornwi shares which JavaScript features make handling parameters with event handlers both possible and well-supported.
Have you ever opened a new app or website and thought, “Wait… where’s the menu?” You’re not alone. Many people are noticing that the traditional way we move around digital interfaces, those big, bulky menus is slowly fading. And no, it’s not bad design. It’s evolution.
For nearly three years, Arc from The Browser Company has been my daily driver. To be sure, there was a little bit of a learning curve. Tabs disappeared after a day unless you pinned them. Then they became almost like bookmarks. Tabs were on the left side of the window, not at the top. Spaces let me organize my tabs based on use cases like personal, work, or finances. I...
Acquérir un client est une dépense, qu’il convient de rentabiliser, la payback period, ou délai de récupération du coût d’acquisition, mesure précisément combien de temps il faut à une entreprise pour couvrir son CAC (Customer Acquisition Cost) grâce aux revenus générés. Cet indicateur est critique dans l’évaluation des modèles SaaS, abonnements, marketplaces ou services digitaux. …
L’article Payback period, quand votre client commence à vous rapporter est apparu en premier sur FRENCHWEB.FR.
La Direction générale des finances publiques s'apprête à expédier un document à 40 millions de contribuables.
8 Français sur 10 possèdent un livret d'épargne règlementée, mais beaucoup ignorent une règle qui permet d'augmenter leur rémunération.
Le gouvernement britannique prépare une interdiction stricte des paiements de rançons pour l’ensemble du secteur public et des infrastructures critiques. Cette mesure, qui concernera notamment les collectivités locales, les établissements scolaires et le service de santé national (NHS), et marque un tournant stratégique dans la lutte contre les ransomwares. L’objectif est de rendre les attaques …
L’article Le Royaume-Uni veut casser le modèle économique des cybercriminels est apparu en premier sur FRENCHWEB.FR.