Google Search Console : ユーザー補助:▲フォームの要素にラベルが関連づけられていません【ウェブに関する主な指標:PageSpeed Insights】GtanslateとWPML併用時の対策

目次

Google Search Console >ウェブに関する主な指標>ユーザー補助
▲フォームの要素にラベルが関連づけられていません
GtanslateとWPML併用時の対策

次のメッセージが表示される場合の暫定対策方法です。

原因

  • エラーの原因は「role="menuitem" が不正に付いている」こと。
  • GTranslate も WPML も、似たように role を span 等に付けてしまいます。

暫定対策

WordPress にスニペットを追加

プラグイン「Code Snippets」または子テーマの functions.php に以下を入れます。

<?php
// フッター直前でJSを出力して、GTranslate と WPML の不正ARIAをまとめて修正
add_action('wp_footer', function () { ?>
<script>
(function () {
  try {
    // すべての menuitem を走査
    document.querySelectorAll('[role="menuitem"]').forEach(function (el) {
      var inMenu = el.closest('[role="menu"],[role="menubar"]');
      var isClickable = el.tagName === 'A' || el.tagName === 'BUTTON';
      // 親がmenu/menubarじゃない、または span等クリック不可 → role削除
      if (!inMenu || !isClickable) el.removeAttribute('role');
    });

    // WPML独自の <span class="wpml-ls-native" role="menuitem"> も除去対象
    document.querySelectorAll('.wpml-ls-native[role]').forEach(function (el) {
      el.removeAttribute('role');
    });
  } catch (e) {}
})();
</script>
<?php }, 99);

キャッシュを削除

  • WPキャッシュプラグイン、サーバーキャッシュ、CDN をクリア
  • ブラウザでハードリロード(Ctrl+F5)

動作確認

  • DevTools → Elements で .wpml-ls-native を確認 → role が外れている
  • GTranslate のメニュー要素にも role="menuitem" が残っていない
  • Lighthouse/axe のアクセシビリティ警告が消える

注意点

  • これは「応急処置」です。
    元の出力を変えていないので、将来 WPML/GTranslate のアップデートで role の付与が変わっても問題なし(JSで都度消す)。
  • 機能や見た目には影響せず、アクセシビリティ警告だけが消えます。
  • 将来的に「WPMLに統一」「GTranslateに統一」などした場合は、このスニペットは不要になります。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

AIアーティスト | エンジニア | ライター | 最新のAI技術やトレンド、注目のモデル解説、そして実践に役立つ豊富なリソースまで、幅広い内容を記事にしています。フォローしてねヾ(^^)ノ

コメント

コメントする

目次