自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

AI 可以生成前端代碼嗎?

人工智能
2023 年 10 月,TetraLogical 團隊提出了問題 —— “AIGC 可以輔助我編寫可訪問的前端代碼嗎?”。答案出人意料地簡單 —— 是的,如果你足夠機智,不要盲信你得到的每個答案,并且你大膽復制、小心粘貼。

本期共享的是 —— AIGC 的用途之一是協(xié)助編寫或生成前端代碼。訴諸 AIGC 輔助前端開發(fā)有一大坨福利;舉個栗子,快速創(chuàng)建一次性原型,或者輔助我們生成涉及生疏概念的代碼,比如我們不懂貝塞爾曲線,也讓 AI 可以寫出絲滑的動畫特效。

與以前的一大坨發(fā)明一樣,AIGC(生成式人工智能)正在改變前端的開發(fā)方式,但 AIGC 也是一把雙刃劍。

我們可以嘗試使用 AIGC 來輔助生成可訪問的前端代碼。AI 為我們的需求提供了看似權(quán)威的答案,但 AI 也會犯錯,AI 會警告我們大膽復制、小心粘貼,因為當我們提出自己都不知道如何實現(xiàn)的需求時,我們也無法驗證 AI 答案的準確性和可靠性。

我們向三個免費的 AIGC 工具咨詢了若干有關前端可訪問性代碼的典型問題。這些工具是 Google 的 Gemini 和 OpenAI 的 ChatGPT,它們都是在一般數(shù)據(jù)上訓練的 AI 工具的典型代表。

粉絲請注意,AIGC 不會在每次被問到相同問題時給出相同的答案,換而言之,AIGC 不是“純函數(shù)”,相同的輸入不一定得到相同的輸出,大家自己測評的時候不要大精小怪。如果您不知道什么是”純函數(shù)”,正好可以向 AIGC 咨詢。

問題 1

由于生產(chǎn)團隊定期致力于使其產(chǎn)品和服務符合 WCAG(Web 內(nèi)容可訪問性指南),因此前端開發(fā)者可能會求助 AIGC,確定它們編寫的代碼是否可訪問。我們咨詢了測評了谷歌的 Gemini 和 OpenAI 的 ChatGPT:

我們的問題是,下述前端代碼是否符合 WCAG 2.2 Level AA?

<p>
  我家的貓吃了我的代碼。
  <a href="news.html" aria-label="貓吃了我的代碼">一鍵三連</a>
</p>

在這種情況下,上述代碼并不符合 WCAG,具體而言,它不符合 SC(Success Criterion)2.5.3 名稱標簽,其中規(guī)定:

對于帶有包含文本或文本圖像的標簽的 UI 組件,名稱要包含視覺呈現(xiàn)的文本。

上述代碼中,可見的鏈接文本是“一鍵三連”。但是該鏈接的標簽或名稱是“貓吃了我的代碼”。換而言之,該鏈接的名稱不包含其可見文本,因此代碼無法通過 SC 2.5.3 名稱標簽的規(guī)定。

谷歌 Gemini 的測評

針對上述問題,Gemini 的回答是,根據(jù)您提供的信息,我無法明確告訴您該代碼片段是否符合 WCAG 2.2 AA 級。確定 WCAG 合法性需要針對內(nèi)容和代碼的方方面面徹底評估,包括但不限于:

圖片圖片

Gemini 明確表示這個問題超綱了,CPU 要燒壞掉了。之后 AI 繼續(xù)提供若干一般性但可靠的指導,接著推薦若干進一步的資源,輔助我們了解該主題。

OpenAI ChatGPT 的測評

針對上述問題,ChatGPT 的回答是,您提供的 HTML 代碼片段不完全符合 WCAG 2.2 AA 級可訪問性標準。雖然它包含某些輔助功能,但存在若干問題:

圖片圖片

B 站方言,ChatGPT 答對了,但沒有完全對......ChatGPT 提供了錯誤的原因,它忽略了代碼片段未通過 SC 2.5.3 名稱標簽這一事實,而是聚焦于標簽和鏈接文本的質(zhì)量。如果我們的問題指 WCAG AAA 級而不是 AA 級,那么 ChatGPT 關于鏈接文本的說法問題不大,因為 AAA SC 2.4.9 級鏈接目的要求鏈接的目的可以“只從鏈接文本中識別”。雖然但是,A 級 SC 2.4.4 上下文中的鏈接目的有更多的自由度,要求鏈接的目的“可以單獨從鏈接文本確定,或從鏈接文本與其以編程方式確定的鏈接上下文一起確定”。

盡管存在錯誤信息,ChatGPT 提供的改進代碼片段比我們的原始代碼片段更易訪問。它符合 SC 2.4.9 以及 SC 2.4.4。有趣的是,它也符合 SC 2.5.3,盡管這是無意為之。通過讓 -aria-label 屬性的值與鏈接文本相同,可見的鏈接文本會包含在鏈接的名稱中。

粉絲請注意,通過讓可見鏈接文本和 aria-label 屬性的值相同,會使 aria-label 屬性多余,且理想情況下應該將其刪除,作為一般 ARIA 最佳實踐。

問題 2

盡管大多數(shù)常見組件都有文檔化的可訪問模式,但眾所周知,它們?nèi)匀缓茈y正確使用。當然,這也是我們可能會要求 AIGC 工具輔助的需求。我們再次咨詢 Gemini 和 ChatGPT:

我們的需求是,為我們提供網(wǎng)站創(chuàng)建一組可訪問選項卡的所需代碼。

一組可訪問選項卡的最終模式是 W3C ARIA 創(chuàng)作實踐中的模式。它具有一組選項卡的所有預期語義信息和功能,支持鼠標、鍵盤(帶或不帶屏幕閱讀器)和觸摸。

Gemini 的測評

針對上述需求,Gemini 的回答是,以下是為網(wǎng)站創(chuàng)建可訪問選項卡所需的代碼,其中包含 HTML、CSS 和 JS:

圖片圖片

Gemini 提供的代碼有若干缺陷。最值得注意的是,它沒有預期的鍵盤支持。預期是可以使用向上/向下/向左/向右箭頭鍵循環(huán)瀏覽每個選項卡。Gemini 提到的焦點管理也不存在。

Gemini 的代碼已包含預期的 ARIA 角色和屬性,但并不總是正確的。舉個栗子:

  • 每個選項卡都包含一個 <li> 以及其中的 <button> 元素。ARIA 屬性 role=tab、aria-controls 和 aria-selected 已應用于 <li> 元素,但應該應用于 <button> 元素,并將 role="none" 應用于 <li>
  • 選擇新選項卡時,每個 <li> 上的 aria-selected 屬性的值不會更新,這意味著,屏幕閱讀器始終會宣布“選項卡 1”已被選中,即使它不是當前選項卡選定的選項卡
  • 每個具有 role="tabpanel" 的 <div> 元素上的 aria-labelledby 屬性都指向不存在的 id,這意味著,選項卡面板沒有由屏幕閱讀器讀出的易訪問名稱

OpenAI ChatGPT 的測評

針對上述需求,ChatGPT 的回答是,為網(wǎng)站創(chuàng)建可訪問的選項卡涉及 HTML、CSS 和 JS 代碼。以下是如何創(chuàng)建可訪問選項卡的簡單示例:

圖片圖片

ChatGPT 提供的代碼不包含任何 ARIA。這意味著,屏幕閱讀器用戶不會被告知這是一組選項卡,即使它們的樣式看似選項卡。

同理可得,屏幕閱讀器用戶無法辨別當前選擇的選項卡,只能通過瀏覽內(nèi)容來查找。盡管視力正常的人可能能夠從可見內(nèi)容中辨別出當前選擇了哪個選項卡,但當前選擇的選項卡按鈕的設計與其他選項卡沒有區(qū)別。對于使用屏幕放大或小屏幕設備的任何人而言,這可能都有問題。

選項卡之間的結(jié)構(gòu)和關系在視覺上可能很明顯,但沒有編程結(jié)構(gòu)或關系可以輔助無法在屏幕上看到選項卡的任何人。

機智對待 AIGC

2023 年 10 月,TetraLogical 團隊提出了問題 —— “AIGC 可以輔助我編寫可訪問的前端代碼嗎?”。答案出人意料地簡單 —— 是的,如果你足夠機智,不要盲信你得到的每個答案,并且你大膽復制、小心粘貼。

期望大家禁用 AIGC 工具輔助編寫可訪問的前端代碼毫無卵用。大家總會使用工具來輔助提高知識或生產(chǎn)力 —— 畢竟我們幾十年來一直在使用搜索引擎來實現(xiàn)此目的,而下一個工具是比搜索引擎給力的 AIGC。

那么,我們?nèi)绾螜C智地訴諸 AIGC 工具輔助編寫可訪問的前端代碼呢?

我們可以捫心自問:

  1. AIGC 工具對其局限性的了解程度如何?
  2. 我們?nèi)绾悟炞C得到的答案?

Gemini 和 ChatGPT 都明確表示它們可能犯錯,我們應該檢查它們的答案。

不可避免的結(jié)論是,當我們求助 AIGC 工具輔助編寫可訪問的前端代碼時,我們不應該盲信得到的答案,而應該使用我們信任的來源來驗證。

責任編輯:武曉燕 來源: 人貓神話
相關推薦

2025-03-28 08:00:00

AI安全漏洞

2024-09-05 15:37:57

2019-11-08 09:20:57

代碼開發(fā)工具

2024-01-10 18:13:52

生成式AI開源

2024-02-23 08:58:06

AIDevSecOps監(jiān)控

2025-02-26 12:30:00

2023-05-29 11:09:59

紅帽OpenAI

2024-02-28 20:45:04

人工智能英偉達

2021-07-05 06:51:43

流程代碼結(jié)構(gòu)

2025-05-06 02:40:00

2024-06-27 10:51:28

生成式AI領域

2019-04-18 17:29:24

AI阿里巴巴

2025-05-06 06:40:16

2023-09-21 11:48:49

CodeGeeXAI代碼

2021-07-19 14:52:44

AI 代碼機器學習

2024-03-14 16:56:09

AIGC人工智能

2020-04-28 16:00:52

人工智能技術睡眠

2024-09-19 19:35:35

2023-04-26 18:09:32

人工智能AI
點贊
收藏

51CTO技術棧公眾號