Axe DevTools Linter REST API リファレンス

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

Axe DevTools Linter が提供する REST エンドポイントのリファレンスガイド

Free Trial
Not for use with personal data

Axe DevTools Linter は、REST API を使用してアクセシビリティの問題をコードでチェックすることができます。リクエストのボディに JSON オブジェクトとしてチェックしたいソース行を含む HTTP リクエストオブジェクトを作成すると、サーバーは検出したアクセシビリティの問題を示すレスポンス JSON オブジェクトを返します。

サーバーは、React (.js、.jsx、.ts、および .tsx)、Vue (.vue)、Angular (.component.html)、HTML (.html、.htm、および .xhtml)、LiquidJS (.liquid)、および Markdown (.md および .markdown) ファイルをチェックできます。

REST エンドポイント

サーバーは6つの REST エンドポイントを提供します。最初のエンドポイント(/lint-source)は、 POST リクエストに応答し、コードについてアクセシビリティの問題をチェックします。2番目のエンドポイント(/status)は、 GET リクエストに応答し、サーバーが利用可能であるかを示し、サーバーがリスニングしていることを示す 200 応答コードを返します。3番目のエンドポイント(/healthcheck)は、 GET リクエストに応答し、サーバーが動作しているかを示し、実行中のサーバーのバージョン番号を返します。残りの3つのエンドポイントは、SaaS エディションのユーザーがエンタープライズ全体(/billing/enterprise)、そのユーザー(/billing/user)、および API キー(/billing/key)の使用情報を取得することを可能にします。

REST エンドポイントは以下の通りです:

エンドポイント リクエストタイプ 注釈
/lint-source POST
/status GET 非推奨:Axe DevTools Linterの将来のバージョンで削除されます
/healthcheck GET
/billing/enterprise/:year/:month GET SaaS サーバーでのみ有効
/billing/user/:year/:month GET SaaS サーバーでのみ有効
/billing/key/:year/:month GET SaaS サーバーでのみ有効

Lint エンドポイント(/lint-source

Lint エンドポイントは主要なサービスエンドポイントです。これを使用して、Axe DevTools Linter にコードを送信し、アクセシビリティの問題をチェックすることができます。 POST リクエストを受け入れ、チェック対象のコードを含む JSON ボディを送信します。

リクエスト

このエンドポイントを使用するために、 POST 以下の例に示されているように、サーバーの lint エンドポイントへのリクエストを作成してください:

POST /lint-source

また、リクエストのボディに JSON オブジェクトが含まれていることをサーバーに伝えるための Content-Type ヘッダーを含める必要があります。

Content-Type: application/json

Axe DevTools Linter SaaS を使用する場合は、以下に示すように、 Authorization ヘッダーと API キーを含める必要があります:

Authorization: <YOUR API KEY>

API キーの取得方法について詳しくは、 Axe DevTools Linter SaaS API キーの取得を参照してください。

リクエストのボディには、チェックしたいコード(JSON オブジェクト内)が含まれている必要があります。例えば、以下の JSON オブジェクトはマークダウンのサンプルをチェックします:

{
  "source": "# heading\n### Another heading\n",
  "filename": "file.md"
}

上記のマークダウンサンプルにはアクセシビリティエラーがあります:最初の見出し(見出しレベル1)と2つ目の見出し(見出しレベル3)の間にギャップがあります。このエラーに対するサーバーの応答を見るには、以下の レスポンス セクションを参照してください。

JSON リクエストオブジェクト

次の表は、JSON リクエストオブジェクトに使用されるプロパティを示しています:

名前 タイプ 説明
source 文字列 チェックしたいコードです。引用符や行末をエスケープする必要があります。
filename 文字列 コードのファイル名。サーバーはファイル名の拡張子を使用して、含まれるコードの種類を決定し、 source どのリンターを使用するかを決定します。
config LinterConfig リンティングを設定するためのオプションの設定オブジェクト。詳しくは config オブジェクト」 をご覧ください。
language 文字列 コードをチェックするために使用するリンターを指定するためのオプションの文字列。
properties 文字列の配列 レスポンスの各 error オブジェクトに含める追加プロパティのオプションの配列。現在サポートされている値は "customName"のみです。詳細は customNameerror オブジェクトの説明をご覧ください。

リクエストJSONオブジェクト内の source 文字列は、チェックしたいコードです。すべての引用符と改行をエスケープする必要があります(バックスラッシュを前に付けてください)。

文字列は、次のいずれかの値を取ることができます: language 文字列は、次のいずれかの値を取ることができます:

言語 説明
md マークダウン
jsx JavaScript構文拡張(HTMLとJavaScriptの混在を許可)
html HTML
vue Vue.js
tsx TypeScript構文拡張( jsxのように)
angular Angular

サーバーは、 filenamelanguage プロパティを使用して、どのリンターを使用するかを判断します。通常、Axe DevTools Linterは filename プロパティのファイル拡張子を使ってリンターを選択します。代わりに使用するリンターを指定したい場合は、 language プロパティと上記の表に示された値を使用できます。この場合でも、 filename は必須のパラメータとして指定する必要がありますが、 language はファイル名の拡張子よりも優先されます。例えば、 filename に「somefile.html」と指定し、 languagemdを指定した場合、サーバーはMarkdownリンターを使用します。

レスポンス

サーバーはアクセシビリティエラーの有無にかかわらず、レスポンスコード200で応答します。レスポンスの本文にあるJSONを確認して、エラーがあるかどうかを判断する必要があります。

コードにエラーがない場合、JSONレスポンスオブジェクトは次のようになります:

{
  "report": {
    "errors": []
  }
}

以下の例は、エラーがあるソースのレスポンスJSONオブジェクトを示しています( errorserror オブジェクトの配列です)。

{
  "report": {
    "errors": [
      {
        "ruleId": "heading-order",
        "helpURL": "https://dequeuniversity.com/rules/axe/4.3/heading-order?application=axe-linter",
        "description": "Ensures the order of headings is semantically correct",
        "lineContent": "### Another heading",
        "lineNumber": 2,
        "linterType": "md",
        "column": 1,
        "endColumn": 20
      }
    ]
  }
}
error オブジェクト」

の配列は errors オブジェクトを保持し、これらには次のプロパティがあります: error 名前

タイプ Type 説明
ruleId 文字列 このコードによって破られたアクセシビリティルールのルールID。
helpURL 文字列 エラーを説明するウェブページのURL。
description 文字列 エラーの説明。
lineContent 文字列 エラーのソースコード。
lineNumber 数値 エラーのソースの行番号。
linterType 文字列 エラーを見つけるために使用したリンター。アクセシビリティの問題を見つけるために使用される複数のリンターがあります。
column 数値 エラーのある行の開始列 lineNumber
endColumn 数値 エラーのある行の終了列 lineNumber
customName 文字列 カスタムマッピングされたコンポーネント のタグ名 であり、違反を引き起こしたものです。 "customName" がリクエストの properties 配列に含まれ、違反がカスタムマッピングされたコンポーネントからのものである場合にのみ存在します。 カスタムコンポーネント違反の分析 例を参照してください。

config オブジェクト

Axe DevTools Linterがソースのアクセシビリティエラーをチェックする際のルールをより細かく制御したい場合は、 config プロパティを指定できます。

{
  "source": "<html></html>",
  "filename": "file.html",
  "config": {
    "rules": {
      "html-has-lang": false
    },
    "exclude": [],
    "tags": []
  }
}

前の例では、ソースにアクセシビリティエラー( lang 要素に html 属性が欠落)があっても、そのルールがオフにされているため、エラーは返されません。

global-components オブジェクト

global-components オブジェクトはカスタムコンポーネントとその属性を既存のHTML要素と属性にマッピングします。カスタムコンポーネントのリンティングの入門情報については、 カスタムコンポーネントのリンティングを参照してください。

以下の例は、完全なカスタムコンポーネントマッピングを示しています。

{
  "config": {
    "global-components": {
      "custom-component": {
        "element": "html-element",
        "attributes": [
          { "custom-attribute-1": "html-element-attribute-1" },
          { "custom-attribute-2": "<text>" },
          "aria-*"
        ],
        "replace": true
    }
  }
}

この例は、カスタムコンポーネント custom-component から html-element へのマッピングを示し、属性 custom-attribute-1html-element-attribute1 および custom-attribute-2 にマッピングした <text>特別な属性値で、 custom-attribute-2 を出力HTML要素のテキストコンテンツにマッピングします。詳細については、 特別な <text>

特別な aria-* 値は、カスタム要素上のすべてのARIA属性が出力HTML要素にコピーされるべきであることを示します。詳細については、 使用方法 aria-* を参照してください。

replace プロパティは、 custom-component が出力DOMツリーから削除されるべきかどうかを示します。AngularとJavaScriptのカスタム要素には含まれます。デフォルト設定は使用している技術のデフォルトと同じです。すなわち、 true はAngularとHTMLには、 false はJSX、TSX、およびVueには。

note

プロパティを省略して elementattributes として表すこともできますが、 elattrs を同時に使用することはできませんし、 elementel を一緒に使用することもできません。 attributes attrs

カスタムコンポーネントが属性マッピングを必要としない場合、この省略形式を使用して custom-componenthtml-elementにマップできます:

{
  "config": {
    "global-components": {
      "custom-component": "html-element"
    }
  }
}
rules プロパティ

rules プロパティは LinterRuleset オブジェクトを参照し、ルールIDによってルールを有効または無効にすることができます。アクセシビリティルールの詳細については、 Axe DevTools Linter のアクセシビリティルールを参照してください。

例えば、次の設定では、 image-alt ルールを有効化し、 tabindex ルールを無効化します:

{
  "config": {
    "rules": {
      "image-alt": true,
      "tabindex": false
    }
  }
}

サーバーがチェックするルールの一覧については、 Axe DevTools Linter のアクセシビリティルール

exclude プロパティ

exclude プロパティは、Axe Linterに対して特定のファイルをリントからスキップさせるために使用できます。詳しくは、 設定ファイル を参照してください。

tags プロパティ

tags プロパティは、文字列または *タグ*の配列です。各タグは1つ以上のアクセシビリティルールに付随しており、ここに複数のタグを指定すると、多くの異なるアクセシビリティルールを有効化できます(指定されたタグに付与されていないルールはすべて無効になります)。タグは通常、異なるアクセシビリティ基準に対応し、各ルールは多くの異なるタグのメンバーとなれます。

note

複数のタグを指定した場合、すべてのタグに属するルールではなく、すべてのタグに含まれるルールが有効になります。つまり、ルールの交差ではなく、和集合です。

ステータスエンドポイント(/status

important

この /status エンドポイントは廃止されており、使用しないでください。代わりに /healthcheck エンドポイントを使用してください。

ヘルスチェックエンドポイント(/healthcheck

サーバーが稼働しているかどうかを確認し、バージョン番号を取得するには、 GET リクエストをヘルスチェックエンドポイントに送信します。以下に例を示します。

GET /healthcheck

サーバーが稼働している場合、以下の例に示すように、サーバーのバージョン番号を返します。

{
  "version": "4.10.3"
}

エンタープライズ課金エンドポイント(/billing/enterprise

note

このエンドポイントは、Axe DevTools Linter SaaSとプライベートクラウド製品でサポートされています。プライベートクラウドの導入の場合、例のSaaSサーバーURLをプライベートクラウドサーバーのURLに置き換えてください。

エンタープライズ課金エンドポイントを使用すると、エンタープライズ全体の利用情報および各APIキーによる使用の内訳を取得できます。このエンドポイントは GET リクエストに応答し、年と月(ここでは2022年5月)を指定する必要があります。以下に例を示します。

GET https://axe-linter.deque.com/billing/enterprise/2022/4
authorization: <YOUR-API-KEY>
important

JavaScript Date オブジェクトでは、月は0から11の範囲で、1月を0、12月を11とします。しかし、 month サーバー応答の値は1から12の範囲で、1月を1、12月を12とします。

リクエストには authorization ヘッダーが必要で、APIキーを含めます。 APIキーの取得 についての詳細を参照してください。

デフォルトでは、サーバーは1か月分のデータを返しますが、オプションで months=<number-of-months-data> クエリ文字列を使用してさらに指定できます。 months パラメータは1から12(含む)の範囲で、以下の例に示すように、2022年5月から始まる3か月のデータを取得する例を示します。

GET https://axe-linter.deque.com/billing/enterprise/2022/4?months=3
authorization: <YOUR-API-KEY>

レスポンス

SaaSリンターサーバーは、2つのオブジェクトを含むJSONオブジェクトで応答します。最初のオブジェクトは summary オブジェクトで、2つ目は api_keys、各APIキーのリンターサービスの使用情報を含むオブジェクトのコレクションです。

以下に例としてレスポンスオブジェクトを示します。

{
  "summary": {
    "year": 2022,
    "month": 5,
    "total_lines_linted": 500,
    "total_scans": 40
  },
  "api_keys": [{
    "id": "a2fd58d0-4810-4fbb-b928-7befa01bf89c",
    "name": "My Project",
    "keycloak_id": "d117bb33-1308-41b0-8960-06301eefb169",
    "user_email": "someone@example.com",
    "total_lines_linted": 500,
    "total_scans": 40
  }]
}

指定された期間にデータがない場合、レスポンスは次のようになります。

{
  "summary": {
    "year": 2022,
    "month": 5
  },
  "api_keys": []
}
この summary オブジェクト

この summary オブジェクトは、総行数情報とエンタープライズ内のユーザーによって開始されたスキャン数を提供します。

名前 タイプ 説明
year 数値 結果の開始年
month 数値 結果の開始月(1-12)
total_lines_linted 数値 エンタープライズによってリンターサービスに送信された総行数
total_scans 数値 エンタープライズによって実行されたスキャンの総数
この api_keys 配列

この api_keys 配列は次のプロパティを含むオブジェクトで構成されています。

名前 タイプ 説明
id 文字列 ユーザーを識別するUUID
name 文字列 APIキーが作成されたときの名前
keycloak_id 文字列 ユーザーの Keycloak ID
user_email 文字列 ユーザーのメールアドレス
total_lines_linted 数値 リンターサービスに送信された合計行数
total_scans 数値 このユーザーが開始したスキャンの総数

ユーザー課金エンドポイント(/billing/user

note

このエンドポイントは、Axe DevTools Linter SaaSおよびプライベートクラウド製品でサポートされています。プライベートクラウドでの導入の場合、SaaSサーバーURLをプライベートクラウドサーバーURLに置き換えてください。

このエンドポイント、使用課金エンドポイントにより、SaaSサーバーへのアクセスに使用されたすべてのAPIキーに対するユーザーの課金情報を取得できます。デフォルトでは1か月分のデータが返されます。

以下の例は、提供されたAPIキーで表されたユーザーに対する2022年5月のリクエストを示しています( authorization ヘッダー内):

GET https://axe-linter.deque.com/billing/user/2022/4
authorization: <YOUR-API-KEY>
important

JavaScript Date オブジェクトは月を0から11までで表し、0が1月、11が12月です。しかし、サーバーの応答での month 値は1から12で、1が1月、12が12月です。

他の課金エンドポイントと同様に、以下に示すようにオプションの months クエリ文字列を指定できます:

GET https://axe-linter.deque.com/billing/user/2022/4?months=2
authorization: <YOUR-API-KEY>

以下は、例としての応答オブジェクトを示しています:

{
  "summary": {
    "year": 2022,
    "month": 5,
    "total_lines_linted": 500,
    "total_scans": 40
  },
  "api_keys": [{
    "id": "a2fd58d0-4810-4fbb-b928-7befa01bf89c",
    "name": "My Project",
    "keycloak_id": "d117bb33-1308-41b0-8960-06301eefb169",
    "user_email": "someone@example.com",
    "total_lines_linted": 500,
    "total_scans": 40
  }]
}

指定された期間にユーザーが使用していない場合、次の応答が返されます:

{
  "summary": {
    "year": 2022,
    "month": 5
  },
  "api_keys": []
}

応答オブジェクトには2つのオブジェクトが含まれ、 summaryapi_keys ユーザーに関連するものです。詳細については、 オブジェクト summary を参照してください。配列 api_keys を参照してください。 上記。

APIキー課金エンドポイント(/billing/key

note

このエンドポイントは、Axe DevTools Linter SaaSおよびプライベートクラウドインストールでサポートされています。プライベートクラウドインストールの場合、以下の例のサーバーURL(https://axe-linter.deque.com)をプライベートクラウドサーバーURLに置き換えてください。

APIキーに対する使用データを取得するには、APIキー課金エンドポイントを利用できます。以下のように年と月を指定する必要があります:

GET https://axe-linter.deque.com/billing/key/2022/4
authorization: <YOUR-API-KEY>
important

JavaScript Date オブジェクトは月を0から11までで表し、0が1月、11が12月です。しかし、サーバーの応答での month 値は1から12で、1が1月、12が12月です。

他の課金エンドポイントと同様に、以下に示すようにオプションの months クエリ文字列を指定できます:

GET https://axe-linter.deque.com/billing/key/2022/4?months=2
authorization: <YOUR-API-KEY>

以下に例として、応答オブジェクトが示されています:

{
  "name": "My Project",
  "total_lines_linted": 1000,
  "total_scans": 200
}

指定された期間中にAPIキーを使用してリンティングされた行がない場合、 Authorization ヘッダーで指定した場合、次のような応答が返されます:

{
  "name": "My Project",
  "total_lines_linted": 0,
  "total_scans": 0
}

この name 値は、APIキーが作成されたときに割り当てられた名前です。他の値、 total_lines_lintedtotal_scansは、指定された期間内にリンティングされた行数と、その期間内にこのAPIキーによって開始されたスキャンの総数を指定します。

URLクイックリファレンス

Axe DevTools Linter SaaSで使用する重要なURLは次のとおりです。

URL 説明
https://axe-linter.deque.com 公開アクセス可能なAxe DevTools Linter SaaSサーバー。利用にはAPIキーが必要です。
https://axe.deque.com/settings Axe DevTools Linter SaaS認証APIキーを取得するためのウェブアプリのURLです。

詳細については、 Axe DevTools Linter SaaS APIキーの取得 を参照してください。