定制 jidaikobo/a11yc 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

jidaikobo/a11yc

最新稳定版本:7.1.0

Composer 安装命令:

composer require jidaikobo/a11yc

包简介

Static accessibility checker core for A11YC

README 文档

README

License: MIT

a11yc is the core accessibility checking library extracted from A11YC.

This package is a PHP library, not the old standalone web application. It provides HTML and URL analysis APIs that can be embedded in other applications such as the standalone UI layer or the jwp-a11y WordPress plugin.

Requirements

  • PHP 7.4 or later
  • Composer

Installation

composer require jidaikobo/a11yc

If you are working on this repository directly:

composer install

Compiled Resources

Runtime resource loading now expects precompiled PHP arrays in resources/compiled/.

The distributed package should include:

  • resources/compiled/ja.php
  • resources/compiled/en.php

When you change resource source files under resources/, rebuild the compiled files before committing or packaging:

composer compile-resources

This command regenerates the compiled PHP arrays from the YAML source files.

At runtime, a11yc uses the compiled files first. If they are missing, the library raises an error unless YAML fallback is explicitly enabled for development.

Development-Only YAML Fallback

For local development only, you can allow direct YAML loading with a Git-ignored config.development.php file in the package root:

<?php

return array(
    'allow_yaml_fallback' => true,
);

This file is not intended for distribution. In normal packaged environments, keep compiled resources available and do not rely on YAML fallback.

What This Package Does

  • Fetch and analyze a page by URL
  • Analyze already-available HTML
  • Return normalized issue lists and summary counts
  • Extract image metadata used by the analyzer
  • Load WCAG-related resources from bundled YAML files

Basic Usage

Analyze a URL

<?php

require_once __DIR__ . '/vendor/autoload.php';

use Jidaikobo\A11yc\Analyzer;

$analyzer = new Analyzer();

$result = $analyzer->analyzeUrl('https://example.com/', array(
    'do_link_check' => false,
    'do_css_check' => false,
    'include_images' => true,
));

Analyze HTML

<?php

require_once __DIR__ . '/vendor/autoload.php';

use Jidaikobo\A11yc\Analyzer;

$html = '<!doctype html><html lang="ja"><head><title>Example</title></head><body><img src="/logo.png" alt=""></body></html>';

$analyzer = new Analyzer();

$result = $analyzer->analyzeHtml($html, array(
    'url' => 'https://example.com/',
    'is_partial' => false,
    'do_link_check' => false,
    'do_css_check' => false,
    'include_images' => true,
));

Result Format

Analyzer::analyzeUrl() and Analyzer::analyzeHtml() return an array with these top-level keys:

  • meta
  • summary
  • issues
  • images

meta

  • url: analyzed URL
  • requested_url: original requested URL (only for analyzeUrl())
  • exists: whether fetching succeeded (only for analyzeUrl())
  • user_agent: effective user agent string
  • version: A11YC_VERSION if defined
  • check_count: number of executed checks
  • analyzed_at: ISO 8601 timestamp

summary

  • error_count
  • notice_count
  • counts_by_level

counts_by_level contains:

  • a
  • aa
  • aaa

issues

Each issue is normalized into a flat array:

  • id
  • type (error or notice)
  • message
  • level
  • criterion_keys
  • place_id
  • snippet

images

When include_images is enabled, image data includes:

  • element
  • src
  • alt
  • href
  • is_important
  • aria

Available Options

Both Analyzer::analyzeUrl() and Analyzer::analyzeHtml() accept an options array.

  • url: base URL for analysis (analyzeHtml() only; default about:blank)
  • user_agent: user agent used for fetching HTML/CSS
  • checks: array of check class names to run; omitted means all available checks
  • is_partial: skip full-document assumptions for partial HTML analysis
  • do_link_check: enable slower link validation checks
  • do_css_check: enable CSS fetching and CSS-related checks
  • include_images: include extracted image data in the result

Lower-Level API

If you need the raw validation result set before normalization:

<?php

use Jidaikobo\A11yc\Validate;

$resultSet = Validate::html(
    'https://example.com/',
    $html,
    array(),
    'using',
    true,
    array(
        'is_partial' => false,
        'do_link_check' => false,
        'do_css_check' => false,
    )
);

The normalized API via Analyzer is recommended for new integrations.

License

MIT

统计信息

  • 总下载量: 4
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 16
  • 点击次数: 7
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 16
  • Watchers: 8
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-03-02

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固