@d-zero/a11y-check 0.4.5 → 0.4.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +152 -0
- package/package.json +11 -11
package/README.md
CHANGED
|
@@ -1 +1,153 @@
|
|
|
1
1
|
# `@d-zero/a11y-check`
|
|
2
|
+
|
|
3
|
+
ウェブサイトのアクセシビリティチェックを行うツールです。
|
|
4
|
+
|
|
5
|
+
- Puppeteerを使用してページのアクセシビリティを検証します
|
|
6
|
+
- Googleスプレッドシートに詳細なレポートを出力します
|
|
7
|
+
- 複数のシナリオ(axe、01、02)でチェックを実行可能
|
|
8
|
+
- スクリーンショット機能付き
|
|
9
|
+
|
|
10
|
+
## CLI
|
|
11
|
+
|
|
12
|
+
```sh
|
|
13
|
+
npx @d-zero/a11y-check -f <listfile> [options]
|
|
14
|
+
npx @d-zero/a11y-check <url>... [options]
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
リストをファイルから読み込むか、URLを直接指定して実行します。
|
|
18
|
+
|
|
19
|
+
### オプション
|
|
20
|
+
|
|
21
|
+
- `-f, --listfile <file>`: URLリストを持つファイルのパス
|
|
22
|
+
- `<url>`: 対象のURL(複数指定可能)
|
|
23
|
+
- `-s, --screenshot`: スクリーンショットを撮影する(デフォルト: false)
|
|
24
|
+
- `-o, --out <url>`: GoogleスプレッドシートのURL(デフォルト: 標準出力)
|
|
25
|
+
- `--scenarios <scenarios>`: チェックシナリオ(カンマ区切り、利用可能: axe,01,02、デフォルト: axe)
|
|
26
|
+
- `--cache <true|false>`: キャッシュを使用する(デフォルト: true)
|
|
27
|
+
- `--cacheDir <dir>`: キャッシュディレクトリ(デフォルト: .cache)
|
|
28
|
+
- `--locale <locale>`: ロケール設定
|
|
29
|
+
- `--limit <number>`: 並列実行数の上限
|
|
30
|
+
- `--debug`: デバッグモード(デフォルト: false)
|
|
31
|
+
- `--verbose`: 詳細ログモード(デフォルト: false)
|
|
32
|
+
|
|
33
|
+
### 使用例
|
|
34
|
+
|
|
35
|
+
```sh
|
|
36
|
+
# 基本的な使用
|
|
37
|
+
npx @d-zero/a11y-check https://example.com
|
|
38
|
+
|
|
39
|
+
# ファイルから読み込み
|
|
40
|
+
npx @d-zero/a11y-check -f urls.txt
|
|
41
|
+
|
|
42
|
+
# スクリーンショット付きで実行
|
|
43
|
+
npx @d-zero/a11y-check https://example.com --screenshot
|
|
44
|
+
|
|
45
|
+
# 結果をGoogleスプレッドシートに出力
|
|
46
|
+
npx @d-zero/a11y-check -f urls.txt -o https://docs.google.com/spreadsheets/d/xxx/edit
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
#### URLリストのファイルフォーマット
|
|
50
|
+
|
|
51
|
+
```txt
|
|
52
|
+
https://example.com
|
|
53
|
+
https://example.com/a
|
|
54
|
+
https://example.com/b
|
|
55
|
+
ABC https://example.com/c
|
|
56
|
+
XYZ https://example.com/xyz/001
|
|
57
|
+
# コメント
|
|
58
|
+
# https://example.com/d
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
URLの手前に任意のIDを付与することができます。ホワイトスペースで区切ることでIDとURLを分けることができます。
|
|
62
|
+
IDが指定されていない場合は、URLのみが記録されます。
|
|
63
|
+
|
|
64
|
+
`#`で始まる行はコメントとして無視されます。
|
|
65
|
+
|
|
66
|
+
## 設定ファイル
|
|
67
|
+
|
|
68
|
+
Frontmatterを使用してページフックを設定できます。
|
|
69
|
+
|
|
70
|
+
```txt
|
|
71
|
+
---
|
|
72
|
+
hooks:
|
|
73
|
+
- ./hook1.cjs
|
|
74
|
+
- ./hook2.mjs
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
https://example.com
|
|
78
|
+
https://example.com/a
|
|
79
|
+
︙
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**注意**: 設定ファイルでは`hooks`のみ設定可能です。その他のオプション(`scenarios`, `screenshot`, `locale`, `cache`, `cacheDir`など)はCLIオプションとして指定してください。
|
|
83
|
+
|
|
84
|
+
### 利用可能なシナリオ
|
|
85
|
+
|
|
86
|
+
- `axe`: axe-coreを使用したアクセシビリティチェック
|
|
87
|
+
- `01`: カスタムシナリオ01
|
|
88
|
+
- `02`: カスタムシナリオ02
|
|
89
|
+
|
|
90
|
+
### ページフック
|
|
91
|
+
|
|
92
|
+
`hooks`に配列としてスクリプトファイルのパスを渡すと、ページを開いた後にそれらのスクリプトを実行します。
|
|
93
|
+
|
|
94
|
+
```js
|
|
95
|
+
/**
|
|
96
|
+
* @type {import('@d-zero/puppeteer-page-scan').PageHook}
|
|
97
|
+
*/
|
|
98
|
+
export default async function (page, { name, width, resolution, log }) {
|
|
99
|
+
// 非同期処理可能
|
|
100
|
+
// page: PuppeteerのPageオブジェクト
|
|
101
|
+
// name: サイズ名
|
|
102
|
+
// width: ウィンドウ幅
|
|
103
|
+
// resolution: 解像度
|
|
104
|
+
// log: ロガー
|
|
105
|
+
|
|
106
|
+
// ログイン処理の例
|
|
107
|
+
log('login');
|
|
108
|
+
await page.type('#username', 'user');
|
|
109
|
+
await page.type('#password', 'pass');
|
|
110
|
+
await page.click('button[type="submit"]');
|
|
111
|
+
await page.waitForNavigation();
|
|
112
|
+
log('login done');
|
|
113
|
+
}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Googleスプレッドシート出力
|
|
117
|
+
|
|
118
|
+
`-o`オプションでGoogleスプレッドシートのURLを指定すると、詳細なレポートが出力されます。
|
|
119
|
+
|
|
120
|
+
### 必要な環境変数
|
|
121
|
+
|
|
122
|
+
Googleスプレッドシートに出力するには、以下の環境変数が必要です:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
export GOOGLE_AUTH_CREDENTIALS='/path/to/credential.json'
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
クレデンシャルファイルは、Google Cloud Consoleの[APIとサービス](https://console.cloud.google.com/apis/credentials)から**OAuth 2.0 クライアント ID**(アプリケーションの種類は**デスクトップ**)を発行してダウンロードします。
|
|
129
|
+
|
|
130
|
+
### 出力されるレポート項目
|
|
131
|
+
|
|
132
|
+
- No.: 連番
|
|
133
|
+
- 対象画面URL: チェック対象のURL
|
|
134
|
+
- テスト方法: 使用したシナリオ
|
|
135
|
+
- 日時: チェック実行日時
|
|
136
|
+
- パーツ: コンポーネント名
|
|
137
|
+
- 環境: 実行環境
|
|
138
|
+
- 対象箇所: 問題のある要素
|
|
139
|
+
- AS IS: 現在の状態
|
|
140
|
+
- TO BE: 改善すべき状態
|
|
141
|
+
- TO BE(補足): 補足説明
|
|
142
|
+
- WCAGバージョン: WCAGのバージョン
|
|
143
|
+
- 達成基準番号: WCAGの達成基準
|
|
144
|
+
- 適合レベル: A/AA/AAA
|
|
145
|
+
- スクリーンショット: スクリーンショットのURL
|
|
146
|
+
|
|
147
|
+
## 認証
|
|
148
|
+
|
|
149
|
+
### Basic認証
|
|
150
|
+
|
|
151
|
+
Basic認証が必要なページの場合はURLにユーザー名とパスワードを含めます。
|
|
152
|
+
|
|
153
|
+
例: `https://user:pass@example.com`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@d-zero/a11y-check",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.7",
|
|
4
4
|
"description": "Accessibility Checker CLI",
|
|
5
5
|
"author": "D-ZERO",
|
|
6
6
|
"license": "MIT",
|
|
@@ -24,20 +24,20 @@
|
|
|
24
24
|
"clean": "tsc --build --clean"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@d-zero/a11y-check-axe-scenario": "0.4.
|
|
28
|
-
"@d-zero/a11y-check-core": "0.5.
|
|
29
|
-
"@d-zero/a11y-check-scenarios": "0.4.
|
|
30
|
-
"@d-zero/cli-core": "1.1.
|
|
31
|
-
"@d-zero/google-auth": "0.4.
|
|
32
|
-
"@d-zero/google-sheets": "0.
|
|
33
|
-
"@d-zero/puppeteer-page-scan": "4.1
|
|
34
|
-
"@d-zero/readtext": "1.1.
|
|
27
|
+
"@d-zero/a11y-check-axe-scenario": "0.4.6",
|
|
28
|
+
"@d-zero/a11y-check-core": "0.5.6",
|
|
29
|
+
"@d-zero/a11y-check-scenarios": "0.4.6",
|
|
30
|
+
"@d-zero/cli-core": "1.1.2",
|
|
31
|
+
"@d-zero/google-auth": "0.4.3",
|
|
32
|
+
"@d-zero/google-sheets": "0.4.0",
|
|
33
|
+
"@d-zero/puppeteer-page-scan": "4.2.1",
|
|
34
|
+
"@d-zero/readtext": "1.1.9",
|
|
35
35
|
"@d-zero/shared": "0.9.2",
|
|
36
36
|
"ansi-colors": "4.1.3",
|
|
37
37
|
"dayjs": "1.11.18",
|
|
38
|
-
"dotenv": "17.2.
|
|
38
|
+
"dotenv": "17.2.3",
|
|
39
39
|
"front-matter": "4.0.2",
|
|
40
40
|
"minimist": "1.2.8"
|
|
41
41
|
},
|
|
42
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "85b9a1f15d2db8798cf24a6a3f035cee1db6ba3d"
|
|
43
43
|
}
|