vendredi 25 septembre 2026

À propos

Contact

Accessibilité

Ajouter un contrôle d’accessibilité automatisé aux Abilities API de WP 6.9

WordPress 6.9 introduit les Abilities API. L'occasion d'y exposer un contrôle d'accessibilité automatisé, appelable par un agent ou un outil de supervision.

Par Clément Hadrot • 12 janvier 2026 • 4 min de lecture • Aucun commentaire
Ajouter un contrôle d'accessibilité automatisé aux Abilities API de WP 6.9

WordPress 6.9, publié en décembre dernier, a fait entrer dans le cœur les Abilities API : un mécanisme qui permet à un plugin de déclarer des capacités structurées, avec une entrée et une sortie définies, appelables aussi bien par du code PHP classique que par des agents automatisés ou des intégrations MCP. Pour une équipe qui automatise déjà une partie de sa qualité, c’est une occasion naturelle d’y exposer un contrôle d’accessibilité.

Ce tutoriel montre comment déclarer une ability qui lance un contrôle d’accessibilité basique sur le contenu d’un article, directement depuis WordPress, sans dépendre d’un service externe.

Étape 1 — Comprendre ce qu’apporte une ability

Une ability se déclare avec un nom unique, une description destinée à être comprise par un agent appelant, un schéma d’entrée et un schéma de sortie, ainsi qu’une fonction de rappel qui exécute le traitement. C’est un contrat explicite, bien plus structuré qu’un simple hook ou qu’un endpoint REST improvisé.

Étape 2 — Déclarer l’ability de contrôle d’accessibilité

L'essentiel à retenir : Une ability déclare une capacité invocable avec une entrée et une sortie typées ; Le contrôle d'accessibilité proposé s'appuie sur les vérifications déjà exécutées en local ; Exposer ce contrôle en ability le rend appelable depuis un agent IA ou une tâche planifiée

La déclaration se fait sur le hook dédié à l’enregistrement des abilities, avec wp_register_ability() :

add_action( 'wp_abilities_api_init', function () {
    wp_register_ability( 'wp-moderne/controle-accessibilite-article', array(
        'label'               => __( 'Contrôler l’accessibilité d’un article', 'wp-moderne' ),
        'description'         => __( 'Analyse le contenu d’un article et retourne une liste d’anomalies d’accessibilité détectables automatiquement.', 'wp-moderne' ),
        'input_schema'        => array(
            'type'       => 'object',
            'properties' => array(
                'post_id' => array( 'type' => 'integer' ),
            ),
            'required'   => array( 'post_id' ),
        ),
        'output_schema'       => array(
            'type'       => 'object',
            'properties' => array(
                'anomalies' => array( 'type' => 'array' ),
                'score'     => array( 'type' => 'integer' ),
            ),
        ),
        'execute_callback'    => 'wp_moderne_executer_controle_accessibilite',
        'permission_callback' => function () {
            return current_user_can( 'edit_posts' );
        },
    ) );
} );

Étape 3 — Écrire la fonction de contrôle

La fonction appelée reprend des vérifications simples, déjà utilisées dans un script de recette maison : images sans texte alternatif, titres qui sautent un niveau, liens au texte non explicite comme « cliquez ici » :

function wp_moderne_executer_controle_accessibilite( $input ) {
    $post = get_post( $input['post_id'] );
    $anomalies = array();

    if ( preg_match_all( '/<img(?![^>]*alt=)[^>]*>/i', $post->post_content, $matches ) ) {
        $anomalies[] = sprintf( '%d image(s) sans attribut alt', count( $matches[0] ) );
    }

    if ( stripos( $post->post_content, '>cliquez ici<' ) !== false ) {
        $anomalies[] = 'Lien avec un intitulé non explicite détecté (« cliquez ici »)';
    }

    $score = max( 0, 100 - ( count( $anomalies ) * 15 ) );

    return array(
        'anomalies' => $anomalies,
        'score'     => $score,
    );
}

Étape 4 — Rendre l’ability appelable depuis un agent

Une fois déclarée, cette ability devient invocable par tout consommateur compatible, y compris un serveur MCP exposé côté WordPress : un agent de supervision peut demander un contrôle d’accessibilité avant de valider automatiquement la publication d’un article, ou pour flaguer un contenu à revoir avant sa mise en ligne planifiée.

Étape 5 — Ne pas se substituer à l’audit humain

Ce contrôle reste volontairement limité aux anomalies détectables par analyse de texte : il ne remplace ni un test clavier, ni une vérification de contraste réel, ni un test avec lecteur d’écran. Il sert de garde-fou automatisé de première ligne, pas de certification RGAA.

Limiter les faux positifs

Le score retourné doit être présenté comme un indicateur, jamais comme une note de conformité. Sur les projets où cette ability a été testée, un score parfait de 100 n’a jamais dispensé de l’audit manuel prévu avant mise en production, exactement comme un scanner d’accessibilité classique.

Une ability qui contrôle l’accessibilité doit rester honnête sur ses limites dans sa propre description : un agent qui l’invoque doit comprendre qu’il obtient un signal partiel, pas un verdict.

En résumé

Les Abilities API de WordPress 6.9 offrent un cadre propre pour exposer un contrôle d’accessibilité automatisé de premier niveau, appelable par un agent ou une tâche planifiée. C’est un complément utile à l’audit humain, à condition de ne jamais présenter son score comme une preuve de conformité RGAA.

Partager :

À propos de l'auteur

Clément Hadrot

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi