用途
Document Scanning 是 accessibility-agents 中负责文档发现与清点的组件,用于无障碍审计流程的前置阶段。它的目标是在一个文件夹或代码仓库中找出所有需要审计的 Office 文档和 PDF,同时跟踪哪些文件发生了变化,从而避免每次都对整个文档库做全量扫描。
支持的文件类型
该工具针对四种文件类型进行扫描,并将每种类型分派给相应的子代理处理:
| 扩展名 | 类型 | 子代理 |
|---|---|---|
| .docx | Word 文档 | word-accessibility |
| .xlsx | Excel 工作簿 | excel-accessibility |
| .pptx | PowerPoint 演示文稿 | powerpoint-accessibility |
| PDF 文档 | pdf-accessibility |
文件发现命令
资料提供了 PowerShell(Windows)与 Bash(macOS)两种平台的扫描命令,均包含非递归与递归两种模式。
PowerShell 非递归扫描:
Get-ChildItem -Path "<folder>" -File -Include *.docx,*.xlsx,*.pptx,*.pdf
PowerShell 递归扫描会进一步过滤掉 ~$* 临时文件、*.tmp、*.bak 以及藏在特定目录下的文件。
Bash 非递归扫描:
find "<folder>" -maxdepth 1 -type f \( -name "*.docx" -o -name "*.xlsx" -o -name "*.pptx" -o -name "*.pdf" \) ! -name "~\$*"
Bash 递归扫描同样会排除 ~$*、*.tmp、*.bak,以及 .git/、node_modules/、__pycache__/、.vscode/ 目录中的文件。
增量检测
为支持增量审计,该工具提供基于 Git 与基于时间戳两种变更检测方式。
基于 Git 的方式包括:检测自上次提交以来变更的文件、检测自指定 tag 以来变更的文件,以及检测最近 N 天内变更的文件。命令示例:
git diff --name-only HEAD~1 HEAD -- '*.docx' '*.xlsx' '*.pptx' '*.pdf'
基于时间戳的方式(PowerShell)可按最后修改时间筛选,例如找出在某个日期之后修改的文件。
扫描时需跳过的文件
扫描过程中应始终排除以下模式:~$*(Office 锁定/临时文件,文档打开时创建)、*.tmp(临时文件)、*.bak(备份文件),以及位于 .git/、node_modules/、.vscode/、__pycache__/ 目录内的文件。
扫描配置文件
| 文件 | 用途 |
|---|---|
| .a11y-office-config.json | 针对 Word、Excel、PowerPoint 的规则启用/禁用 |
| .a11y-pdf-config.json | 针对 PDF 扫描的规则启用/禁用 |
扫描配置档(Profiles)
| 配置档 | 规则 | 严重级别 | 使用场景 |
|---|---|---|---|
| Strict | 全部 | Error、Warning、Tip | 面向公众、有法律要求的文档 |
| Moderate | 全部 | Error、Warning | 大多数组织 |
| Minimal | 全部 | 仅 Error | 大型文档库的初步分类 |
上下文传递格式
在委派给子代理时,应始终提供如下上下文信息块:
## Document Scan Context
- **File:** [full path]
- **Scan Profile:** [strict | moderate | minimal]
- **Severity Filter:** [error, warning, tip]
- **Disabled Rules:** [list or "none"]
- **User Notes:** [any specifics]
- **Part of Batch:** [yes/no - if yes, indicate X of Y]
适用场景与限制
该工具适用于文档无障碍审计前的文件发现、清点与增量检测,尤其是需要按 Git 变更或时间戳筛选待审计文档的场景。其具体安装方式、运行环境依赖、收费情况、审计结果的详细输出格式等,资料中暂未提供。