ARIAロール必須属性を調べる
ARIAロールを調べると、その決まりが分かります。checkboxはaria-checkedが必須で、aria-labelやaria-invalidなど推奨属性が8つあり、アクセシブルネームも必要です。WAI-ARIA 1.2に基づき、存在しないロールは受け付けません。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 役職
- checkbox
- カテゴリ
- widget
- スーパークラス
- input
- 必須属性
- aria-checked
- 必須の数
- 1
各ロールには固定の契約があります。一部の状態とプロパティは必須で、支援技術の実務的なサポートには推奨属性があり、多くのロールではアクセシブルネームも求められます。属性を記憶頼みで推測すると監査失敗の原因になります。checkboxロールにaria-checkedがない、comboboxでaria-controlsを忘れる、ラベルなしのregionランドマークを公開する、といった例です。本機能はARIAロール名を1つ受け取り、大文字小文字と一般的な接頭辞を正規化したうえで、必須属性・推奨属性・カテゴリ・スーパークラス・ネーム要件・WAI-ARIA 1.2に基づく短い説明を確定的に返します。
ARIA属性を記憶に頼ると監査で落ちる理由
ARIAは、独自に作った操作部品が、HTML本来の要素と同じ意味を伝えられるように、何十ものロールを定めています。各ロールには決まった約束があり、必須の状態やプロパティ、支援技術で実際に役立つ推奨の属性があり、多くのロールではアクセシブルネームも求められます。これを記憶だけで書くと、監査でよく失敗します。aria-checkedのないcheckbox、aria-controlsやaria-expandedのないcombobox、aria-valuenowのないslider、ラベルのないregionなどです。どれも自動チェックで不合格になり、スクリーンリーダーの利用者には、それが何で、どんな状態なのかが伝わりません。
1回の検索で分かること
ロール名を1つ入力するだけで、大文字小文字や接頭辞の有無に関係なく調べられます。「column header」と「columnheader」も同じロールになります。必須と推奨の属性、分類、元になる上位のロール、アクセシブルネームが必要か、その名前をどう決めるか、そしてWAI-ARIA 1.2に基づく短い説明が返ります。checkboxなら、必須はaria-checkedだけで、推奨属性は8つ、真、偽、混在の3つの値を持つ入力という説明です。scrollbarでは、aria-controls、aria-valuenow、aria-valuemin、aria-valuemaxの4つが必須になります。フォーカスを受ける区切り線には値の属性が要り、飾りの区切り線には要らない、といった条件付きの注意も表示されます。
活用例
CIのアクセシビリティlintオラクル
マークアップやStorybookから得たrole値について、マージ前に必須属性がすべて存在するかを検証し、抽象ロールや未知ロールでは失敗させます。
よくある質問
あるロールで必須のARIA属性はどれですか?
ロール名(例:checkbox、combobox、slider)を送ってください。
HTMLページを検証しますか?
いいえ。 1つのロール名について仕様の特性を照合するだけです。ライブのマークアップ走査にはアクセシビリティ監査(例:web.accessibility)を使ってください。
必須属性と推奨属性はどう違いますか?
必須属性がないとロールは有効になりません。aria-checkedのないcheckboxは自動チェックで不合格になり、スクリーンリーダーも混乱します。推奨属性は、無効や読み取り専用、エラーの説明など、支援技術が状態を伝えるために期待するものです。
checkboxロールにはアクセシブルネームが必要ですか?
必要です。名前は必須と示され、要素の中身か、作成者が付けるaria-labelやaria-labelledbyから得られます。見えている文字だけでは足りないときに後者を使います。
廃止されたロールや抽象ロールはどうなりますか?
directoryのような廃止されたロールも調べられますが、印が付くので、移行の道具は止めずに注意を出せます。抽象ロールや存在しない名前は受け付けず、ないロールに属性を作ることを防ぎます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/web/aria-role-lookup \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"role":"checkbox"}'const res = await fetch("https://api.kit.forhosting.com/web/aria-role-lookup", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"role": "checkbox"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/aria-role-lookup",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"role": "checkbox"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/aria-role-lookup", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"role":"checkbox"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"role":"checkbox"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/aria-role-lookup", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"role": "checkbox"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.aria_role_lookup",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
timeout_sec | 30 |
max_crawl_pages | 25 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
未認識の名前と抽象ロールはinvalid_inputで失敗し、存在しないロールの属性を呼び出し側が捏造しないようにします。同じ純テーブルがブラウザの無料ツールと、成功1件あたり$0.002のプリペイドAPIを支えます。
必須および推奨のARIA属性の意味
WAI-ARIA仕様では、具体ロールごとにRequired States and Properties(ロールを有効にするために著者が必ず付ける属性)と、パターンがより豊かな状態を必要とするときに支援技術が期待するSupported States and Propertiesが列挙されます。必須属性は譲れません。 aria-checkedのないcheckbox、aria-valuenowのないslider、aria-controlsとaria-expandedのないcomboboxは自動検査に失敗し、スクリーンリーダーを混乱させます。応答は、そのロールがアクセシブルネームを必須とするか、その名前がどう計算され得るか(著者属性、要素内容、または禁止)も報告します。directoryのような非推奨の具体ロールは照会可能ですがフラグが付き、移行ツールが照会を止めずに警告できます。本APIの推奨属性は、正しいキーボードとATの挙動のために著者がよく必要とするサポート済みプロパティです。仕様は著者による使用を禁じており、本エンドポイントはマークアップに現れてはならないロール向けの必須属性リストを作りません。
入力契約、応答形状、エラー挙動
要件が条件付きのときは任意のnotesが付きます。例えばフォーカス可能なseparatorにはaria-valuenow、aria-valuemin、aria-valuemaxが必要ですが、静的な装飾separatorには不要です。例:role checkboxは必須のaria-checkedと、readonly、required、disabled、ラベリング、エラーメッセージ属性を含む推奨集合を返します。例:role scrollbarは必須の4属性aria-controls、aria-valuenow、aria-valuemin、aria-valuemaxを返します。リントやデザインシステムの文書と組み合わせてください。必須の文字列フィールドroleを持つJSON本文をPOSTしてください。value、name、query、aria_roleの別名でも受け付けます。エンジンは空白を整え、トークンを小文字化し、role=やaria-roleなどの任意接頭辞を取り除き、内部の空白やアンダースコアを削除するので、column headerとcolumnheaderはどちらも解決します。成功時、本文は正規化済みrole、category、superclass、description、abstract false、ソート済み文字列配列のrequired_attributesとrecommended_attributes、required_countとrecommended_count、name_required、name_from、deprecated、WAI-ARIA 1.2に設定されたspecを返します。role欠落、空文字、未知の名前、抽象ロールは問題を名指しするメッセージ付きでinvalid_inputを投げ、課金されません。本エンドポイントはページをクロールしたりライブのマークアップを検証したりせず、一度に1つのロール名について仕様上の問いだけに答えます。
ARIAロール属性照合が役立つ場面
研修プラットフォームとWCAG講座は、ブラウザの無料経路を使い、受講者がcheckboxとswitch、dialogとalertdialogを特性表の暗記なしで比較できるようにします。テストでは返却されるソート済み配列を固定し、分類名を誤ってコピーする著者向けに抽象ロール拒否を文書化すれば、フルのアクセシビリティエンジンを立てずにスタイルガイド、MCPツール、エッジ検証器向けの安定した契約が得られます。アクセシビリティリンターとCIプラグインはAPIをオラクルとして呼び、ノード上のrole文字列から必須属性を取得し、欠けるものがあればビルドを失敗させます。実装は解析コストモデルのparseティアAのため、成功した呼び出しはいずれも公開の基本料金$0.002で、ワーカー分離環境でオフライン実行され、W3Cサイトの取得に依存しません。
連携の活用例
デザインシステムの文書化
role文字列からコンポーネント単位のARIA表を生成し、ReactやWeb ComponentのAPIの横で必須・推奨属性をエンジニアに示します。
研修とWCAGワークショップ
受講者がcheckbox、combobox、regionを対話的に照合し、WAI-ARIA全表を暗記せずにname_required規則を比較できるようにします。
技術的な質問
ロール名が未知の場合はどうなりますか?
タスクはinvalid_inputで失敗し、ロールが認識されない旨のメッセージを返します。widgetやlandmarkのような抽象ロールも、著者が使ってはならないため拒否されます。
照合は大文字小文字を区別しますか?
いいえ。ロール名は小文字に正規化され、role=などの任意接頭辞は除去され、トークン内の空白やアンダースコアも削除されます。
ARIAロール属性照合の料金は?
ブラウザツールは無料です。API要求は成功1件あたり$0.002でKITのプリペイド残高を使い、無効な入力は課金されません。