ForHosting KIT · Images

Le texte est-il lisible sur le fond ?

Sachez si un texte sera lisible sur son fond : #111827 sur blanc à 16 px offre un contraste de 17.74 et satisfait AA et AAA. La taille et la graisse de la police décident si le minimum du grand texte s’applique. Gratuit dans votre navigateur.

  • Gratuit
  • Fonctionne dans votre navigateur
  • Sans inscription
  • Vos données restent sur votre appareil
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt
Si vous saisissez
Couleur
#111827
Arrière-plan
#ffffff
Taille
16
Vous obtenez
Unité de taille
Px
Taille (pt)
12
Taille (px)
16
Échelle du texte
normal

Concepteurs et ingénieurs ont souvent besoin d’un oui ou non face à une question trompeusement simple : cette couleur de texte, à cette taille, est-elle vraiment lisible sur ce fond ? Un ratio de contraste à lui seul ne tranche pas, car les Web Content Accessibility Guidelines traitent le grand corps avec plus d’indulgence que le texte courant. Ce contrôleur prend une couleur hex de texte, une couleur hex de fond et une taille de police, classe l’échantillon en normal ou large selon la règle publiée de dix-huit points ou quatorze points en gras, puis compare le ratio officiel de contraste par luminance relative au minimum du niveau demandé. Le verdict est un booléen nommé legible, plus le ratio, le seuil et la classe d’échelle, afin que vous puissiez montrer l’arithmétique à côté de la réponse.

Comment la lisibilité WCAG est tranchée selon la taille

Les Web Content Accessibility Guidelines ne traitent pas chaque glyphe de la même façon. Un corps à seize pixels a un devoir de contraste plus strict qu’un titre à vingt-quatre pixels, car les formes plus grandes restent lisibles avec un écart de luminance plus faible. Ce contrôleur transforme cette règle en un seul booléen.

Il analyse la couleur du texte et celle du fond comme hex sRGB opaque, linéarise chaque canal de huit bits avec la courbe officielle par morceaux et construit la luminance relative avec les poids 0.2126, 0.7152 et 0.0722. Le ratio de contraste est la luminance plus claire plus 0.05 divisée par la plus foncée plus 0.05.

En parallèle il convertit la taille fournie en points CSS, où un point égale quatre tiers d’un pixel, et classe l’échantillon en large lorsqu’il atteint au moins dix-huit points, ou au moins quatorze points et qu’il est marqué gras. Le grand corps exige un minimum de trois pour un en AA et de quatre virgule cinq pour un en AAA ; le corps normal exige quatre virgule cinq et sept. Le niveau demandé choisit l’un de ces quatre planchers.

Le ratio non arrondi est comparé au plancher pour qu’un 4.50 affiché ne fasse pas passer un 4.499 sous AA. Rien n’est déduit du CSS, de captures ou d’une page en direct : vous nommez la paire et la taille, et vous obtenez un verdict reproductible pour tickets, jetons de design et portes automatisées.

Où un contrôle oui ou non selon la taille gagne sa place

Les équipes produit rencontrent cette question lorsqu’un gris de marque paraît élégant sur une diapositive mais échoue comme corps de seize pixels sur une carte blanche, ou lorsqu’un titre à vingt-quatre pixels passerait AA alors que la même paire échouerait sur une étiquette de formulaire. Les concepteurs collent un hex de jeton, la surface derrière et la taille de l’échelle, puis lisent un seul indicateur legible avant de figer la paire.

Les ingénieurs branchent le contrat sur des contrôles de pull request qui bloquent un jeton de corps lorsque le type régulier de seize pixels passe sous 4.5 pour 1, tout en laissant un titre hero à dix-huit points utiliser le plancher grand texte de 3 pour 1. Les spécialistes qualité et accessibilité joignent le ratio numérique, l’échelle classée et le booléen aux tickets afin que la correction vise la paire et la taille réelles, non une conjecture de capture.

Les équipes marketing vérifient les hex de campagne contre le fond du site à la taille réelle de la légende, non à une taille de titre supposée. Sur cette page le travail s’exécute entièrement dans votre navigateur. Associez ce verdict à un scanner d’accessibilité de page entière lorsque vous devez parcourir le balisage en direct, et à une matrice de ratios de contraste lorsque vous voulez tous les drapeaux AA et AAA des deux échelles à la fois.

Utilisez cette page lorsque l’intention de recherche est précisément de savoir si ce texte, à cette taille, est sûr sur ce fond.

Corps contre titre avec la même paire hex

Vérifiez si un jeton gris sur blanc qui échoue à 16px de corps passe encore comme grand texte à 24px avant de le réutiliser sur un hero.

Portes CI qui connaissent l’échelle typographique

Faites échouer une pull request lorsqu’une couleur primaire de corps à 16px regular passe sous AA 4.5:1, tandis que les titres utilisent le plancher grand texte.

Preuve dans le ticket avec un verdict oui ou non

Joignez le booléen, le ratio et l’échelle classée à un incident d’accessibilité pour que la correction vise la taille réelle, non une capture.

Comment savoir si un texte est lisible sur un fond ?

Envoyez l’hex du texte, l’hex du fond et la taille de police.

Qu’est-ce qui compte comme grand texte ?

Le texte à grande échelle selon WCAG fait au moins 18 point, ou au moins 14 point et gras. Cet outil convertit les pixels CSS avec 1pt = 4/3 px, donc 24px regular et 18.67px gras sont large.

Quel minimum de contraste est utilisé ?

Texte normal : AA 4.5:1 et AAA 7:1. Grand texte : AA 3:1 et AAA 4.5:1. Le niveau demandé (aa par défaut) choisit un plancher ; les drapeaux utilisent le ratio non arrondi.

Combien coûte le contrôle de lisibilité sur un fond ?

C’est gratuit dans votre navigateur sur cette page.

Pourquoi un titre passe-t-il alors que les mêmes couleurs échouent en texte courant ?

Le grand texte a un minimum plus bas : 3 pour 1 en AA au lieu de 4.5 pour 1. Un titre de 24 pixels compte comme grand à 18 points, alors qu’un texte de 16 pixels est normal et doit atteindre le seuil plus strict.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

POSThttps://api.kit.forhosting.com/color/safe-on-background

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

curl -X POST https://api.kit.forhosting.com/color/safe-on-background \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"color":"#111827","background":"#ffffff","size":16}'
{
  "color": "#111827",
  "background": "#ffffff",
  "size": 16
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "color.safe_on_background",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

max_color_chars32
max_size500
HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

La même fonction pure s’exécute gratuitement dans le navigateur et sur l’API à $0.002 par appel réussi. Un hex invalide, une taille manquante ou une taille non positive échouent avec invalid_input et ne sont pas facturés.

Comment la lisibilité WCAG est tranchée selon la taille

La charge utile signale alors legible, le ratio arrondi à deux décimales, le minimum appliqué, si l’échelle classée passerait AA et AAA, et une étiquette de méthode wcag_relative_luminance.

Contrat d’entrée, unités et validation

Les deux doivent être #RGB ou #RRGGBB, avec ou sans dièse initial, sans distinction de casse, et d’au plus trente-deux caractères. Une validation échouée n’est pas facturée. Envoyez un objet JSON avec trois champs obligatoires. color est l’hex du texte ; aussi accepté comme text_color, foreground, fg ou text. background est l’hex de la surface ; aussi accepté comme background_color ou bg. Les suffixes alpha, les fonctions rgb(), les fonctions hsl() et les couleurs CSS nommées sont rejetés avec invalid_input qui nomme le champ. size est un nombre fini positif d’au plus cinq cents ; font_size est un alias. size_unit vaut px par défaut (pixels CSS) et peut être pt (points CSS). La conversion est exacte : dix-huit points font vingt-quatre pixels, et quatorze points font dix-huit et deux tiers de pixel. bold vaut false par défaut et accepte un booléen ou les chaînes true et false ; à quatorze points ou plus, le gras bascule l’échantillon dans la classe grand texte. level vaut aa par défaut et doit être aa ou aaa. En cas de succès, la réponse renvoie les hex minuscules normalisés, la taille que vous avez envoyée, size_pt et size_px, bold, text_scale comme normal ou large, le niveau demandé, minimum_ratio, contrast_ratio, passes_aa, passes_aaa et le booléen legible. Il n’y a ni appel réseau, ni horloge, ni tirage aléatoire : le même trio color, background et size produit toujours le même verdict dans l’outil gratuit du navigateur et sur l’API.

Où un contrôle oui ou non selon la taille gagne sa place

Via l’API chaque consultation réussie coûte $0.002 ; une entrée invalide n’est pas facturée ; rien n’est conservé après la réponse.

Quels formats de couleur sont acceptés ?

Hex seulement : #RGB ou #RRGGBB, avec ou sans dièse initial. rgb(), hsl(), couleurs nommées et hex avec alpha sont rejetés avec invalid_input.

Consulter la documentation complète du KIT →