uniwue / uw_a11y_check
配置型tt_content和扩展记录的a11y检查
Requires
- ext-dom: *
- symfony/css-selector: ^5.4
- symfony/dom-crawler: ^5.4
- symfony/property-access: ^5.4
- symfony/property-info: ^5.4
- symfony/serializer: ^5.4
- typo3/cms-core: ^11.5
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- typo3/testing-framework: ^6.9.0
Replaces
- typo3-ter/uw-a11y-check: 4.1.0
README
本TYPO3扩展是为维尔茨堡尤利乌斯-马克西米利安大学开发的。
这是什么?
TYPO3扩展"uw_a11y_check"旨在提供评估编辑生成内容的功能,这些内容与可配置的访问性检查集进行对比。
它是如何工作的?
假设,TYPO3网站的主要模板符合A11Y标准,这通常由TYPO3集成商完成。因此,基本上,页面的模板生成的前端输出(例如,页眉、页脚、菜单等)可以排除在A11Y检查之外,当只需处理编辑生成的内容时。
为了仅检查编辑生成的内容,该扩展提供了一个自定义插件,它渲染给定页面的所有内容元素。然后,这些内容元素的前端输出将针对可配置的访问性检查集进行检查。
记录(例如,ext:news记录)中的编辑生成内容也可以通过提供自定义页面进行检查,其中包含受影响扩展的插件以渲染视图(例如,详细视图)。
该扩展高度可配置,并附带一组有限的A11Y检查,这些检查通过分析生成的HTML内容进行处理。然而,可以实现自定义检查(例如,通过第三方A11Y检查器)
注意:包含的内部测试使用symfony domcrawler仅分析DOM结构,不尊重对生成的HTML进行的任何后修改,例如JavaScript。如果您需要更精确的A11Y检查(例如,通过第三方A11Y检查),可以通过自定义分析器实现(参见“自定义”部分)
安装
该扩展可用于composer和非composer环境。对于非composer环境,该扩展自动包含所需的依赖项(主要是几个symfony包)。
安装扩展后,必须在您的TypoScript模板中包含静态TypoScript "TYPO3 Accessibility Check"。
安装和配置后,以下组件可用
- "Accessibility Check"后端模块
- Symfony命令
uw_a11y_check:check:presetByPageUid
用于检查具有给定预设的TYPO3页面/sysfolder - Symfony命令
uw_a11y_check:check:presetByRecordUids
用于检查具有给定预设的记录列表
配置
要求
- 一个扩展(例如,sitepackage),您可以在其中添加A11Y检查扩展的配置
- 一个“空白”后端布局,配置为仅输出一个列的内容,不包含页眉、页脚、菜单等
使用默认配置设置
该扩展使用YAML文件进行配置。它包含一个默认配置,该配置必须用自定义配置覆盖。默认配置包含2个检查预设,将使用提供的默认测试套件和内部A11Y检查。
为了覆盖默认配置,将以下代码片段添加到现有扩展(例如,网站site包)的ext_localconf.php
中。
- 覆盖默认配置
可以通过自定义YAML配置文件或使用TYPO3网站设置(自TYPO3 10.4以来可用)来覆盖默认配置
1.1 通过自定义YAML配置文件覆盖配置
如果您想覆盖或为扩展创建完全新的配置,则推荐这样做。
$GLOBALS['TYPO3_CONF_VARS']['UwA11yCheck']['Configuration'] = 'EXT:your_sitepackage/Configuration/A11y/Default.yaml';
1.2 通过TYPO3网站设置覆盖配置
如果您只想覆盖默认配置中的单个配置值,可以使用以下TYPO3站点配置来操作:
settings:
uw_a11y_check:
presets:
pageContent:
checkUrlGenerator:
configuration:
targetPid: 71
extNews:
checkUrlGenerator:
configuration:
targetPid: 73
接下来,您应该将默认配置的内容复制到您的配置文件中。
- 创建带有插件页面内容和ext:news(如果已安装)的页面。
在TYPO3页面树中创建一个新的sysfolder中的2个页面,并将每个页面的“空白”后端布局分配给它们。
- 在页面内容页面中,添加“显示内容元素以进行a11y检查”插件。
- 在ext:news记录页面中,添加和配置ext:news插件,并确保设置显示模式为“详细视图”。
页面结构的示例截图。
- 将页面UID添加到配置中
在您的配置(YAML文件或TYPO3站点设置)中,您必须为每个预设添加页面UID到checkUrlGenerator
配置。
示例(缩短)
presets:
pageContent:
checkUrlGenerator:
configuration:
targetPid: 216471
预设pageContent
的A11Y检查现在将使用PID 216471来渲染要检查的页面所有内容元素。基本上,PID对于扩展生成检查-URL(用于检索渲染的内容)很重要。
后端模块
配置扩展后,可以使用后端模块执行配置的检查预设。
检查页面内容元素预设的检查结果的示例输出
检查ext:news记录预设的检查结果的示例输出
命令
扩展附带2个symfony控制台命令,用于在CLI环境中处理A11Y分析。检查结果将保存到数据库中。
命令:presetByPageUid
命令uw_a11y_check:check:presetByPageUid
将使用给定预设检查具有指定PID的TYPO3页面/系统文件夹(如果配置为递归)。
示例命令:./typo3/sysext/core/bin/typo3 uw_a11y_check:check:presetByPageUid pageContent 184470
示例输出
命令:presetByRecordUids
命令uw_a11y_check:check:presetByRecordUids
将使用给定预设检查具有指定UID的记录列表。
示例命令:./typo3/sysext/core/bin/typo3 uw_a11y_check:check:presetByRecordUids extNews 42527,58611
示例输出
查看通过命令处理的检查结果
您可以使用扩展后端模块查看保存的检查结果。如果存在保存的结果集,将显示通知(请参阅下面的示例截图)
自定义
您可以自定义扩展的分析逻辑。例如,如果需要分析Extbase扩展的输出,您可以添加一个自定义分析器以及自定义CheckUrlGenerator并实现分析逻辑。
如果默认的内部测试不符合您的需求或您想要使用外部A11Y检查,您可以实现一个带有自定义测试的测试套件。
包含的分析器、checkUrlGenerators和testSuites应该提供有关分析逻辑如何创建以及如何进行自定义的详细概述。
分析器
分析器为A11Y检查提供执行逻辑。扩展附带2个分析器(PageContentAnalyzer
和NewsAnalyzer
),它们用于配置预设。分析器将获取页面内容以进行A11Y检查,处理预设的所有配置测试套件,并将返回检查结果。
CheckUrlGenerators
CheckUrlGenerator用于创建链接到内部页面,其中已添加插件(请参阅配置步骤2)。
测试套件
测试套件通常是单个A11Y检查的组,由配置的分析器执行。扩展附带一组内部测试套件,使用symfony爬虫对渲染的HTML内容进行A11Y分析。
预设
预设(在YAML配置中配置)定义了一个分析器、一个checkUrlGenerator和所有包含的测试套件的配置的逻辑集合。请注意,所有测试套件将为每个预设执行。