WCAG テキスト間隔調整チェッカー
この WCAG テキスト間隔チェッカーは、スタイルシートの測定値を、文字サイズに対する 3 つの基準値と比較します。確認する値は、文字サイズの 1.5 倍以上の行の高さ、0.12 倍以上の字間、0.16 倍以上の単語間隔です。ピクセルやポイントなど、すべての測定値を同じ単位で入力してください。結果には、実際の比率、必要な最小比率、対応する最小値、総合的な合否が表示されます。設計レビューや自動テストに役立つ数値確認ですが、読者が間隔を変更した際にもコンテンツを利用できるかどうかを検証する代わりにはなりません。
無料で実行
4 つの値を同じ単位で測定してください
まず、計算済みの文字サイズと、評価対象となる行の高さ、字間、単語間隔を用意します。チェッカーは各間隔を文字サイズで割るため、4 つの数値には同じ単位を使用する必要があります。ブラウザーの開発者ツールから計算済みスタイルをコピーする場合はピクセルが便利ですが、ポイント、数値に変換した rem、または一貫したほかの長さ単位でも同じ比率になります。たとえば、16 ピクセルの文字に 24 ピクセルの行の高さを組み合わせると、比率は 1.5 です。字間が 1.92 ピクセルなら 0.12、単語間隔が 2.56 ピクセルなら 0.16 になります。単位名を含む入力は受け付けません。CSS キーワード、パーセント、単位なしの line-height 宣言、継承値、相対単位を比較可能な測定値に解決してから、数値だけを送信してください。文字サイズはゼロより大きい必要があり、ゼロまたは負の値は拒否されます。ほかの有限な間隔値はそのまま評価されるため、負の間隔は自動修正されず不合格になります。
総合結果の前に各確認項目をご覧ください
レスポンスには、行の高さ、字間、単語間隔の確認項目が 1 つずつ含まれます。各項目は、入力値を示し、文字サイズに対する比率を計算し、WCAG に基づく最小比率を示し、指定した文字サイズで必要になる絶対的な最小値を計算して、真偽値の合否を返します。総合フィールド passes が true になるのは、3 つの比較がすべて合格した場合だけです。境界と完全に等しい値も合格します。行の高さが 1.5、字間が 0.12、単語間隔が 0.16 という比率は、それぞれのしきい値を満たします。アルゴリズムは数値を直接使用し、比較前には丸めません。そのため、表示上の都合だけで境界付近の結果が変わることはありません。出力から、目標を下回るプロパティを特定し、現在値を minimum_value と比較できます。計算は決定的でネットワークに依存しないため、同じ JSON 入力からは、ブラウザー、ビルドパイプライン、API 連携のどこでも常に同じ JSON 出力が得られます。
調整可能性に絞った確認として結果をお使いください
WCAG 1.4.12 は、利用者が指定されたテキスト間隔の変更を適用したときにも、コンテンツと機能が維持されることを求めています。この計算ツールは、入力した 3 つの測定値が行の高さ、字間、単語間隔に対応する比率に達しているかを確認しますが、ページの検査、CSS の書き換え、利用者による上書きにレイアウトが耐えられることの証明は行いません。完全なアクセシビリティレビューでは、実際のブラウザーで該当する間隔変更を適用し、文字の切れ、非表示になった操作部品、重なり、省略されたラベル、壊れたダイアログ、失われたコンテンツがないかを確認してください。段落間隔も達成基準に含まれますが、宣言された入力が文字サイズに対する 3 つの値だけを扱うため、この機能の対象外です。まず数値結果でトークンやスタイルシートの明白な不一致を早期に検出し、その後に実際の描画をテストしてください。ブラウザー版は手動レビューに便利です。API は成功したリクエスト 1 回につき $0.002 で、コンポーネント、テーマ、テンプレート、生成文書の回帰テストに利用できます。不正な入力は推測や変換をせず拒否します。
活用例
デザイントークンを監査する
共有コンポーネントライブラリを公開する前に、タイポグラフィートークンを目標比率と比較できます。
回帰アサーションを追加する
自動テストで解決したスタイル測定値を送信し、いずれかの間隔比率が不足した場合にビルドを停止できます。
CSS の上書きをレビューする
提案された行の高さ、字間、単語間隔を数値で確認してから、ブラウザーでレイアウトをテストできます。
よくある質問
どの比率を使用しますか?
行の高さは文字サイズの 1.5 倍、字間は 0.12 倍、単語間隔は 0.16 倍を基準に確認します。
入力はピクセルでなければなりませんか?
いいえ。文字サイズと 3 つの間隔値で同じ単位を使用すれば、どの長さ単位でも利用できます。
しきい値と完全に等しい結果は合格しますか?
はい。各比較には等号が含まれるため、最小比率と同じ値は合格します。
ページが WCAG 1.4.12 に適合すると証明できますか?
いいえ。確認するのは 3 つの数値比率だけです。描画されたページにも間隔の上書きを適用し、コンテンツや機能が失われないことをご確認ください。
API リクエストの料金はいくらですか?
成功した API リクエストは 1 回 $0.002 です。同じ決定的な計算をブラウザーでも利用できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/verify/wcag-text-spacing-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"font_size":16,"line_height":24,"letter_spacing":1.92,"word_spacing":2.56}'const res = await fetch("https://api.kit.forhosting.com/verify/wcag-text-spacing-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"font_size": 16,
"line_height": 24,
"letter_spacing": 1.92,
"word_spacing": 2.56
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/verify/wcag-text-spacing-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"font_size": 16,
"line_height": 24,
"letter_spacing": 1.92,
"word_spacing": 2.56
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/verify/wcag-text-spacing-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"font_size":16,"line_height":24,"letter_spacing":1.92,"word_spacing":2.56}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"font_size":16,"line_height":24,"letter_spacing":1.92,"word_spacing":2.56}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/verify/wcag-text-spacing-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"font_size": 16,
"line_height": 24,
"letter_spacing": 1.92,
"word_spacing": 2.56
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "verify.wcag_text_spacing_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |