Aller au contenu

Données simples

phil/accessibility-statement

Statement::toArray() écrit une déclaration sous forme de données simples, et StatementReader::fromArray() les relit pour retrouver la même déclaration. StatementReader::fromJson() lit les mêmes données en JSON, jusqu'à 1 Mio et 16 niveaux de profondeur. Un fichier de configuration, une ligne de base de données ou une API transporte ainsi une déclaration.

use Phil\AccessibilityStatement\StatementReader;

$statement = StatementReader::fromArray([
    'version' => 2,
    'published_at' => '2026-11-08',
    'entity' => 'Example Org',
    'feedback' => ['email' => 'accessibility@example.com'],
    'non_conformities' => [
        ['criterion' => '1.4.3', 'description' => ['en' => 'Grey text on the event pages.']],
    ],
]);

$statement->status;     // ConformanceStatus::Partial, derived from the non-conformities
$statement->target;     // WCAG 2.2 AA, the default

Les clés

CléValeurSi elle est absente
versionentier à partir de 1refusé
published_atmomentrefusé
standardwcag-2.0, wcag-2.1, wcag-2.2wcag-2.2
levelA, AA, AAAAA
statusfull, partial, non-conformantl'état que justifient les non-conformités
entitychaîneaucune
scopetexteaucune
feedbacktable : email, phone, url, postal_address (texte), response_daysrefusé
non_conformitiesliste de tables : criterion (obligatoire, par exemple 1.4.3), reason (non-compliance par défaut, disproportionate-burden, out-of-scope), description, alternative (textes), fix_by (moment), occurrences (entier), from_audit (booléen)aucune
alternativesliste de textesaucune
enforcementtable : procedure (texte, obligatoire), authority (texte), urlaucune
evaluationtable : evaluated_at (moment, obligatoire), method (self-assessment par défaut, third-party, automated), pages, report_urlaucune

Un texte est une table qui associe des étiquettes de langue à des chaînes : {"en": "…", "fr": "…"}. Un moment est une date, 2026-11-08, lue à minuit UTC, ou une date et une heure avec son décalage, 2026-11-08T10:00:00-05:00 ou …Z. Un moment relatif comme tomorrow et une date qui n'existe pas comme 2026-02-30 sont refusés.

toArray() omet ce qui n'est pas donné : un null, une liste vide, un zéro, un faux. Il écrit les moments sous la forme 2026-11-08T10:00:00-05:00.

Ce qui est refusé

Une clé inconnue à n'importe quel niveau, une valeur du mauvais type, une valeur hors de ses bornes ou une déclaration qui se contredit fait refuser toute la déclaration avec une InvalidStatement : aucune déclaration n'est lue à moitié, et aucun avertissement n'est émis. Le message nomme la clé, comme dans The value of "level" is A, AA or AAA. ou The feedback has no key "fax".