サポート » プラグイン » 「AMP」のプラグインで画像のalt属性が消えてしまう

  • ここのところ、「AMP」 https://ja.wordpress.org/plugins/amp/ のプラグインを最新版にアップデートすると、
    ページ内の画像ファイルのHTMLタグが、以下のように表記されるよになりました。

    <amp-img src=”画像URL” alt=”画像の名称” width=”横のピクセル” height=”縦のピクセル” class=”amp-wp-enforced-sizes i-amphtml-layout-intrinsic i-amphtml-layout-size-defined” layout=”intrinsic” i-amphtml-layout=”intrinsic”><i-amphtml-sizer class=”i-amphtml-sizer”></i-amphtml-sizer><noscript>画像の名称</noscript></amp-img>

    このうち、真ん中のあたりにあります「<img alt=””~」のalt属性の部分に、alt属性として書き込みした画像の名称の指定が当てまっていない状態になります。

    一部のサイトチェックのサービスのツールでは、評価が下がりそうなメッセージもありました。

    こちらを修正するには、プラグインの中のどのファイルをどのように書き換えをすればよいかが、なかなか見つけられないため、お教えいただけましたらと思います。

    どうぞよろしくお願いします。

12件の返信を表示中 - 1 - 12件目 (全12件中)
  • こんにちは

    私の環境では、画像ブロックの設定でAlt テキスト (代替テキスト)にセットされているものが、amp-imgタグのalt属性に反映されました。

    WordPress 5.5.1
    AMP 2.0.0

    一部のサイトチェックのサービスのツールでは、評価が下がりそうなメッセージもありました。

    装飾目的 (role=”presentation”) を明示されているので、代替テキスト (alt) は空で問題ないと思うのですが、どこのサービスでしょうか?

    Re:munyagu 様

    すみません、上記の説明文のHTMLタグの例で、<>を小文字にすると画像にそのまま変換されるようでしたので、HTMLタグの例を大文字にして再掲いたします。

    <amp-img src=”画像URL” alt=”画像の名称” width=”横のピクセル” height=”縦のピクセル” class=”amp-wp-enforced-sizes i-amphtml-layout-intrinsic i-amphtml-layout-size-defined” layout=”intrinsic” i-amphtml-layout=”intrinsic”><i-amphtml-sizer class=”i-amphtml-sizer”><img alt=”” aria-hidden=”true” class=”i-amphtml-intrinsic-sizer” role=”presentation” src=”data:image/svg+xml;base64,少し長い英数字の羅列=”></i-amphtml-sizer><noscript><img loading=”lazy” src=”画像URL” alt=”画像の名称” width=”縦のピクセル” height=”562″></noscript></amp-img>

    こちらの「<amp-img」の部分では正常にAltテキスト (代替テキスト)が表示されるのですが、真ん中に「<img alt=””~」のタグが同時に表示されていまして、こちらの方ではAltテキスト (代替テキスト)が含まれていない状態となっています。

    同じく、WordPress 5.5.1 AMP 2.0.0(現在は2.0.1)のバージョンです。

    Re:ishitaka様

    たとえば、「bingウェブマスターツール」では、
    タグには、定義された ALT 属性がありません。」(重要度:低)と表示されます。

    すべてのページの画像で同じ状態であるため、エラーのページ数はやはり膨大になってしまいます。

    imgタグの方でしたね、すいません。

    このプラグインではi-amphtml-sizerの中のimgタグのalt属性は常に空文字になります。
    php の処理を書いて入るようにすることもできませんね・・・

    「bingウェブマスターツール」に関してはちょっと分かりません。お役に立てずにすみません。m(__)m

    Re:munyagu 様

    phpファイルを書き換えて表示する方法は使えないのですか。
    古いバージョンではこのエラーはないので大丈夫なのですが、やはりできれば最新バージョンで、何とかしたいところですね。

    Re:ishitaka様

    ありがとうございます。
    どうにもこちらは、なかなか修正が難しいエラーのようです。

    プラグインの PHP を変更したらできると思います。
    AMP プラグイン 2.0.1 であれば、ServerSideRendering.php の 663 行目 あたりを変更すれば入るんじゃないかと思いますが、やってみたわけではないのでご自身で試してみてください。
    しかしこの変更は、プラグインがアップデートされたら消えてしまい、最新バージョンでは bing でエラーになります。

    どうしても bing などでエラーになるのが嫌なのでしたら、最新バージョンの何かの機能が使えないと困るのでなければひとつ前のバージョンを使うのがいいと思います。

    また、AMP プロジェクトに報告すれば、これがもし不具合なら修正されるかもしれませんし、要望を出せば入るようにしてくれるかもしれません。

    プラグインのサポートフォーラム から投稿するか、github で issue を立ててはどうでしょうか。

    ishitaka さんのおっしゃるように amp の仕様として不要なのであれば、取り込まれる可能性は低いとは思いますが。

    Re:munyagu 様

    ありがとうございます。
    PHPのファイルの書き換えでなら、できるかもしれないのですか。最初の説明文の通り、こちらが主にお訊きしたい質問でした。

    AMPプロジェクトへの報告の方も、検討してみます。

    663行目の「$sizer_img->setAttribute(Attribute::ALT, ”);」の箇所なのですが、具体的にどういったタグをどのように差し替えればよいかがなかなか見つからず、よろしければ変更例をお教え頂けないでしょうか?

    前のバージョンで不都合なく AMP ページが出力されているのに最新バージョンのソースを変更して使いたい目的が私には分からないので、プラグイン自体のソースを変更する意味が無いと私は考えています。

    また、この箇所を変更したら本当に ALT に反映されるのかは私には分かりませんし、どのように記述したらメディアに設定されている代替テキストを入れることができるのかも私には分かりません。

    Re:munyagu 様

    度々のご返信を、ありがとうございます。
    以前の1.5~あたりのバージョンから2.00になったあたりで、大きくファイルの内容などが変わったようでして、
    古いバージョンのままだとそのうち何か速度や互換性などで、不具合が出てくる可能性があるかもしれないと考えたためです。

    記述の表記がご存じでなければ、もちろん大丈夫です。
    しばらくはやはり古いバージョンで使ってみるか、プロジェクトの方への要望の方で、また考えてみますね。

12件の返信を表示中 - 1 - 12件目 (全12件中)
  • このトピックに返信するにはログインが必要です。