AI はフロントエンドコードを生成できますか?

AI はフロントエンドコードを生成できますか?

この号で共有されているのは、AIGC の用途の 1 つは、フロントエンド コードの作成または生成を支援することであるということです。 AIGC を使用してフロントエンド開発を支援することには多くの利点があります。たとえば、1 回限りのプロトタイプをすばやく作成したり、なじみのない概念を含むコードの生成を支援したりすることができます。たとえば、ベジェ曲線を理解していなくても、AI はスムーズなアニメーション効果を作成することもできます。

これまでの多くの発明と同様に、AIGC (生成型人工知能) はフロントエンド開発の方法を変えていますが、AIGC は諸刃の剣でもあります。

AIGC を使用して、アクセス可能なフロントエンド コードの生成を支援することができます。 AI は私たちのニーズに対して一見信頼できる回答を提供しますが、AI も間違いを犯すことがあります。実装方法がわからない要件を提示した場合、AI の回答の正確性と信頼性を検証できないため、AI は大胆にコピーして慎重に貼り付けるよう警告します。

3 つの無料 AIGC ツールに対して、フロントエンドのアクセス可能なコードに関するいくつかの一般的な質問をしました。これらのツールは、Google の Gemini と OpenAI の ChatGPT であり、どちらも一般的なデータでトレーニングされた AI ツールの代表的なものです。

ファンの皆さん、AIGC は同じ質問をしても毎回同じ答えを返すわけではないことに注意してください。言い換えれば、AIGC は「純粋な関数」ではなく、同じ入力で必ずしも同じ出力が生成されるわけではありません。自分で評価する際には、あまりこだわりすぎないようにしてください。 「純粋関数」が何であるかわからない場合は、AIGC に問い合わせてください。

質問1

制作チームは、自社の製品やサービスを WCAG (Web コンテンツ アクセシビリティ ガイドライン) に準拠させるために定期的に作業しているため、フロントエンド開発者は、自分が作成したコードがアクセシブルかどうかを判断するために AIGC を利用することがあります。 Google の Gemini と OpenAI の ChatGPT を参考にして評価しました。

質問は、次のフロントエンド コードは WCAG 2.2 レベル AA に準拠しているかどうかです。

 <p>我家的猫吃了我的代码。 <a href="news.html" aria-label="猫吃了我的代码">一键三连</a> </p>

この場合、上記のコードは WCAG に準拠していません。具体的には、次の SC (成功基準) 2.5.3 名前タグに準拠していません。

テキストまたはテキストの画像を含むラベルを持つ UI コンポーネントの場合、名前にはテキストの視覚的表現が含まれます。

上記のコードでは、表示されるリンク テキストは「ワンクリックで 3 つのリンク」です。しかし、そのリンクのラベルまたは名前は「猫が私のコードを食べました」です。つまり、リンクの名前には表示テキストが含まれていないため、コードは SC 2.5.3 名前タグに違反します。

Google Gemini レビュー

上記の質問に対する Gemini の回答は、提供された情報に基づいて、コード スニペットが WCAG 2.2 レベル AA に準拠しているかどうかを明確に判断することはできないというものです。 WCAG の合法性を判断するには、コンテンツとコードのあらゆる側面を徹底的に評価する必要があります。これには以下が含まれますが、これらに限定されません。

写真

Gemini は、この問題は範囲外であり、CPU が焼損するだろうと明言しました。次に、AI は一般的だが確かなガイダンスを提供し、その後にトピックを理解するのに役立ついくつかの追加リソースを推奨します。

OpenAI ChatGPT レビュー

上記の質問に対する ChatGPT の回答は、提供された HTML コード スニペットが WCAG 2.2 AA レベルのアクセシビリティ標準に完全に準拠していないというものです。いくつかのアクセシビリティ機能が含まれていますが、いくつか問題があります。

写真

B サイト方言では、ChatGPT は正しく実行しましたが、完全ではありませんでした... ChatGPT は、コード スニペットが SC 2.5.3 の名前タグに合格しなかったという事実を無視してエラーの理由を提供し、代わりにラベルとリンク テキストの品質に焦点を当てました。質問が WCAG レベル AA ではなくレベル AAA に関するものである場合、ChatGPT のリンク テキストに関する記述はそれほど問題ではありません。これは、レベル AAA SC 2.4.9 リンクの目的により、リンクの目的が「リンク テキストのみから識別できる」ことが要求されているためです。レベル A SC 2.4.4 では、コンテキストにおけるリンクの目的についてより幅広い範囲が規定されていますが、リンクの目的は「リンク テキストのみから、またはプログラムによって決定されたリンク コンテキストと組み合わせて決定できる」ことが求められます。

エラー メッセージにもかかわらず、ChatGPT によって提供される改善されたコード スニペットは、元のコード スニペットよりもアクセスしやすくなっています。 SC 2.4.4 だけでなく SC 2.4.9 にも準拠しています。興味深いことに、これは意図的ではありませんが、SC 2.5.3 にも準拠しています。 -aria-label 属性にリンク テキストと同じ値を設定すると、表示されるリンク テキストがリンク名に含まれます。

ファンの皆さんは、表示されるリンク テキストと aria-label 属性に同じ値を設定すると、aria-label 属性が冗長になるため、一般的な ARIA のベスト プラクティスとして削除するのが理想的であることに注意してください。

質問2

一般的なコンポーネントのほとんどにはアクセシビリティ パターンが文書化されていますが、正しく使用するのは依然として難しいことで知られています。もちろん、これは AIGC ツールの支援が必要になる可能性があるという要件でもあります。私たちは再び Gemini と ChatGPT に相談しました。

私たちの要件は、当社の Web サイトにアクセス可能なタブのセットを作成するために必要なコードを提供することです。

アクセス可能なタブのセットの最終的なパターンは、W3C ARIA Authoring Practices からのものです。タブ セットに期待されるすべてのセマンティック情報と機能を備えており、マウス、キーボード (スクリーン リーダーの有無にかかわらず)、およびタッチをサポートします。

ジェミニレビュー

上記の要件に対する Gemini の回答は、HTML、CSS、JS を含む、Web サイトのアクセス可能なタブを作成するために必要なコードは次のとおりです。

写真

Gemini が提供するコードにはいくつかの欠陥があります。最も注目すべきは、期待されるキーボード サポートがないことです。上/下/左/右の矢印キーを使用して各タブを循環できることが期待されます。ジェミニが言及したフォーカス管理も欠けています。

Gemini のコードには、期待される ARIA の役割と属性がすでに含まれていますが、必ずしも正しく含まれているわけではありません。例えば:

  • 各タブは、内部に <button> 要素を含む <li> で構成されます。 ARIA 属性 role=tab、aria-controls、aria-selected が <li> 要素に適用されていますが、<button> 要素に適用し、<li> に role="none" を適用する必要があります。
  • 新しいタブが選択されると、各 <li> の aria-selected 属性の値は更新されません。つまり、現在選択されているタブではない場合でも、スクリーン リーダーは常に「タブ 1」が選択されていると通知します。
  • role="tabpanel" を持つ各 <div> 要素の aria-labelledby 属性は存在しない ID を指しています。つまり、タブ パネルにはスクリーン リーダーによって読み上げられるアクセス可能な名前がありません。

OpenAI ChatGPT レビュー

ChatGPT は、上記のニーズに対して、Web サイトのアクセス可能なタブを作成するには HTML、CSS、および JS コードが必要であると答えています。以下は、アクセス可能なタブを作成する方法の簡単な例です。

写真

ChatGPT によって提供されるコードには ARIA が含まれていません。つまり、タブのように見えるようにスタイル設定されていても、スクリーン リーダーのユーザーにはこれがタブのセットであることが通知されません。

同様に、スクリーン リーダーのユーザーは、現在どのタブが選択されているかを判断できず、コンテンツを参照してのみタブを見つけることができます。目が見える人は、表示されているコンテンツから現在どのタブが選択されているかを識別できるかもしれませんが、現在選択されているタブ ボタンは他のタブと区別できないように設計されています。これは、画面拡大機能や小さな画面のデバイスを使用する人にとっては問題になる可能性があります。

タブの構造とタブ間の関係は視覚的には明らかですが、画面上でタブを見ることができないユーザーを支援するプログラム的な構造や関係はありません。

AIGCを賢く扱う

2023 年 10 月、TetraLogical チームは、「AIGC はアクセシブルなフロントエンド コードの作成に役立ちますか?」という質問をしました。答えは驚くほど簡単です。あなたが得た答えをすべて盲目的に信じないほど賢く、大胆かつ慎重にコピー&ペーストするのであれば、答えはイエスです。

アクセシブルなフロントエンド コードの作成を支援するために AIGC ツールを無効にすることを期待しても意味がありません。私たちは常に、知識や生産性の向上に役立つツールを使用しています。何十年もの間、この目的で検索エンジンを使用してきましたが、次のツールは検索エンジンよりも強力な AIGC です。

では、AIGC ツールを賢く使用して、アクセシブルなフロントエンド コードの作成を支援するにはどうすればよいでしょうか?

私たちは自分自身にこう問いかけることができます。

  1. AIGC ツールはその限界をどの程度理解しているのでしょうか?
  2. 得られた回答をどのように検証するのでしょうか?

Gemini と ChatGPT はどちらも、間違っている可能性があり、回答を確認する必要があることを明確に述べています。

必然的な結論は、アクセシブルなフロントエンド コードの作成を支援するために AIGC ツールを利用する場合、得られた回答を盲目的に信頼するのではなく、信頼できるソースで検証する必要があるということです。

<<: 

>>:  Meta、Google、Tesla、競合他社が団結してOpenAIについて不満を訴える!ソラは物理世界を理解していません。GPT3 だけです。

ブログ    
ブログ    

推薦する

中国のこの場所で:人工知能の新たな革命が起こる - 中国におけるAIの現状分析

中国はなぜ米国と同じくらい多くの人工知能研究者を育成しているにもかかわらず、機械学習などの主要分野で...

不妊治療の新たな夜明け:AI

世界初の試験管ベビーは1978年に英国で誕生した。それ以来、人工生殖技術は継続的に改良されてきました...

AIの5つの本当の危険性

偽造品、アルゴリズムの偏り、その他の問題が私たちの日常生活に及ぼす影響[[323166]]過去数年間...

...

会話型AIとその技術コンポーネントの機能を探る

今日では、自動化、人工知能 (AI)、自然言語処理 (NLP) の進歩により、コスト効率の高いデジタ...

...

Ant Groupが、プログラマー向けAIアシスタントの新たな競合製品となるオープンソースコードモデルCodeFuseを発表

9月8日現在、コード作成を支援できるAI製品はすでに数多く市場に出回っている。本日の外灘大会サブフォ...

人工知能とビッグデータがもたらす「新たな雇用形態」

現在の社会経済情勢において、「新しい雇用形態」は強力なツールとなっている。新しい雇用モデルとは、新た...

産業用ロボットを正確に選択するにはどうすればいいですか?これら 9 つのパラメータが教えてくれます。

オートメーション業界のベテランや経験豊富な電気機械エンジニアにとって、適切な「ロボット」を選択するこ...

人工知能業界の給与が明らかに、転職の時期が来た

人工知能は、現在最もホットな産業であると言っても過言ではありません。最先端のテクノロジー企業から革新...

無線ルーターのさまざまな暗号化アルゴリズムの包括的な説明

ワイヤレス ルーターは、ワイヤレス ネットワークの開発において非常に重要な役割を果たします。ここでは...

...

Appleはすでに社内でAppleGPTを使用していると報じられている

7月24日、Appleは社内で従業員の業務を支援するためにチャットボットを使用しており、将来的には顧...

ハイエンドチップはインテリジェント運転の問題を解決できるでしょうか?

この数か月の「影響」を経て、誰もが半導体不足の事実を十分に認識したと思います。2020年12月以来、...

パフォーマンスが20%向上しました! USTCの「状態シーケンス周波数領域予測」手法:学習サンプル効率の最大化の特徴

強化学習 (RL) アルゴリズムのトレーニング プロセスでは、サポートとして環境との相互作用のサンプ...