Mastodon/乳齒象 由 @jedi@g0v.social 發表: 注意力跟心力都是資源沒錯呀,但是若妳想著用來表達愛、要被感覺到,那些其實都不是愛。 人類總是以愛為名義做各種事,包括虐待、種族滅絕,都以愛的名義行之,實際上各種「表達愛」的行為都是由私欲所驅動。我覺得從現實上的考量跟謀算來說,這一點務必要很清楚理解:愛不是驅力,私欲才是,而且這是一件中性的事實。 愛是無所謂目的或意義的。愛就是愛,但愛也就只是愛。超出愛的都是私欲。 神愛世人每個字都有很大可議的空間。先把一些可能會引起激烈論戰(例如神是否存在、是否唯一、是否存在階級結構、是否可以量化、是否是實體,人類是否比其他生物不同……)的事情略過,我理解到的關鍵是這樣的: 「神性」本質上是「非人」。以人類的感知、道德、經驗、邏輯所設想的「神」,必然只是人類的自我感覺良好而已。或許人類只是自大地以為自己已經超凡入聖,只是更加凸顯人類的低下卑微。 神的愛可能是什麼呢?我的一個猜想是「時間(維度)」。事件的因果可以被觀察、感知,這就是「神愛世人」。當人類不斷做些蠢事,終將迎來毀滅,這就是神的愛。這個愛沒有企圖、沒有動機、沒有行動, just be. 到 g0v.social 檢視這則嘟文
Mastodon/乳齒象 由 @jedi@g0v.social 發表: 前同事始終展現出令人激賞的敏銳直覺及專業素養,在他人天馬行空畫大餅的時候,直指核心地問道:『大家』是誰? 當年,我把(當時仍是)同事的這個提問放進提問劇本,讓這個重要的反思成為必然要面對的課題。我們團隊訪談過幾十個部門,能回答出來的部門數為 0。 幾年之後,原本的老闆卸下職務,繼續在相鄰場域追尋崇高的理念。我仍然想起前同事的鍼砭,遙遙呼應著動物農莊的尖銳諷刺: 所有動物一律平等,但 #有些動物比其他動物更平等 到 g0v.social 檢視這則嘟文
由 @jedi@g0v.social 發表: 關於 #QRCode #望周知 提供 QR Code 時,一併提供文字型態網址(仍然有人需要用桌上型電腦操作) 不要把 QR Code 當成可以使用超長網址的撇步(會影響 QR Code 的辨識容錯跟顯示尺寸限制) 務必考量使用情境來決定 QR Code 的呈現尺寸以及容錯率(LED 廣告招牌跟名片上的 QR Code 需要不同設計,即使兩者辨識結果相同) 同一個畫面內盡量不要有多個 QR Code(使用者可能設定成自動開啟,導致開錯連結) 數位媒介上的 QR Code 建議做成可直接使用的超連結;如果網址就在旁邊,建議兩個元件包成一個超連結。 數位媒介上的 QR Code 要注意反相、高對比、強迫指定色彩模式等使用者偏好,尤其要注意使用「透明背景色」可能讓事情變得更複雜,務必完整測試 QR Code 圖片替代文字設定「*連結目標標題* 的 QR Code」 實體物件上的 QR Code 建議提供可觸摸辨識的特徵,例如凸起或 #貝爾曼截角 https://jedi.org/blog/archives/006406.html 到 g0v.social 檢視這則嘟文
由 @jedi@g0v.social 發表: 處在某個高度以上,就會開始看到一大堆很扯、很蠢、十足狗屁倒灶的事。 一大堆。 因為同樣很扯、很蠢、十足狗屁倒灶的理由,這些事情永遠不會攤在陽光下,最後只會跟著進墳墓。 因此人類永遠無法從歷史中學習。 到 g0v.social 檢視這則嘟文
由 @jedi@g0v.social 發表 到 g0v.social 檢視這則嘟文
我對她說,「我原諒妳,再一次也是最後一次。」
完整相容性報告及相關測試檔案請至 GitHub 瀏覽 Freego 檢測相容性報告。 Freego 是一套自動化檢測工具,搭配人工檢測機制,用於台灣政府網站無障礙標章檢測相關業務。Freego 最早的版本由行政院研究發展考核委員會(研考會)委託凌網科技開發,由研考會免費提供給公眾使用;隨著政府組織調整,Freego 軟體的主管機關歷次變更,包括行政院國家發展委員會(國發會)、國家通訊傳播委員會(通傳會)等,目前為數位發展部(數發部)數位政府司(數政司),開發廠商也已變更為中華民國資訊軟體協會(中華軟協)。 目前 Freego 最新版本為 Sep 27 2024,適用於網站無障礙規範 (110.07)(註:數發部主管法規查詢系統陳列的《網站無障礙規範》是較舊的版本,不是現行版本),即對應 W3C Web Content Accessibility Guidelines (WCAG) 2.1。 Freego 在諸多方面一直飽受爭議,包括至今為止仍缺少明確的軟體使用授權協議,民眾無法檢視或取得程式源碼,未符合數發部推動的公共程式政策方向。Freego 核心功能(網站無障礙檢測)經常被認為有誤判疑慮,同時若干身心障礙團體指出通過軟體檢測的網站仍發生明顯障礙,令人懷疑 Freego 實作的各項檢測規則是否有效可信;Freego 採用的檢測規則並未遵循 W3C Accessibility Guidelines Working Group (AGWG) 發佈的 Accessibility Conformance Testing (ACT) Rules Format 1.0 推薦標準格式來設計,其產製的檢測報告也未採用 W3C Evaluation and Report Language (EARL) 1.0 Schema 格式,使得 Freego 檢測規則及檢測結果很難與其他檢測工具互相比較。 2014 年 5 月,W3C 成立了 Automated-WCAG Monitoring Community Group (Auto-WCAG CG),後於 2019 年 4 月變更為 ACT-Rules Community Group (ACT-R CG),這是由實際開發檢測工具及檢測標準程序的各國產、官、學界成員組成的社群小組,包括 Siteimprove、Deque Systems、IBM、PowerMapper、Total Validator、美國聯邦政府、LASIGE, Faculdade de Ciências da Universidade de Lisboa 等皆為小組成員。其主要的任務包括: 討論、設計合理且可行的無障礙檢測規則,包括自動化檢測規則及人工檢測規則。 促進各種無障礙檢測工具及人工檢測程序的檢測結果一致性。 ACT-R 依照 ACT Rules Format 1.0 推薦標準格式,提出檢測規則設計方式,陸續在眾成員努力之下整理維護出一系列具公信力的 ACT Rules 檢測規則(包含測試案例)。雖然數發部及 Freego 開發廠商(中華軟協)至今為止並未積極參與 ACT-R,任何人還是可以用這一系列 ACT Rules 檢測規則來驗證 Freego 的檢測相容性。 Freego 檢測相容性報告利用這個方法,把 Freego 的檢測結果與 ACT-R 整理的自動化檢測工具 ACT Rules 檢測規則實作狀況比較,結果約略如下表: 自動化網站無障礙檢測工具實作 ACT Rules 規則數量比較 自動化檢測工具 及版本實作一致 規則數量實作僅部分一致 規則數量實作不一致或未實作 規則數量 Freego (Sep 27 2024)1086 Alfa (0.80.0)31848 Axe-core (4.8.3)301146 Equal Access Accessibility Checker (3.1.42-rc.0)25557 QualWeb (3.0.0)412026 SortSite (6.45)44043 Total Validator (17.4.0)44142 在目前總共 87 個公認可靠的 ACT Rules 檢測規則當中,Freego 能達到實作一致(及部分一致)的規則數量只有 1 個,明顯低於其他檢測工具,實作不一致或未實作的規則數量也明顯高於其他檢測工具。不過 Freego 的本質上比較屬於半自動工具,需要搭配人工檢測機制一起實施,單獨看上述數值比較的結果未必就表示 Freego 不可信,我們還要進一步反過來,檢視 Freego 實作的檢測規則(檢測碼)是否有疑慮: Freego 檢測規則(檢測碼)與 ACT Rules 檢測規則相容性比較 完全相容 規則數部分相容 規則數不相容 規則數無法對應 規則數 011513 Freego 目前使用的 29 個檢測規則(檢測碼實作)當中,沒有任何一個能夠與 ACT Rules 檢測規則完全相容,僅有 1 個達到部分相容;有 15 個檢測規則(檢測碼實作)不相容,表示可能誤判(應該通過的網頁判為未通過)或無效(無法檢測出實際存在的障礙),應重新檢討程式實作,建議勿用於檢測網頁無障礙符合程度。Freego 有 13 個檢測規則(檢測碼實作)無法對應至 ACT Rules 檢測規則,表示這些檢測規則不具備充足的公信力,應避免用於無障礙標章檢測。 從上述的結果及分析來看,Freego 目前仍然是個功能不成熟、可信度及有效性皆不佳的檢測工具,即使是要搭配人工檢測機制也不夠理想。建議數發部應積極參與 ACT-R 社群小組,運用 W3C 推薦標準及相關技術,重新檢討各項檢測規則、重構 Freego 軟體(還有那說好的公共程式政策),或者乾脆改用其他更成熟也更可信的檢測工具,方能有效實施政府網站無障礙標章檢測任務。
行政院公報第 031 卷第 021 期(2025-02-06)刊登衛生福利部護理及健康照護司於 2025 年 02 月 06 日衛部照字第 1141560094 號預告《身心障礙者鑑定作業辦法》第 4 條、第 7 條、第 8 條修正草案,其中包括就類別二之鑑定向度「b230 聽覺功能」障礙程度 1 之基準 1 酌作修正,定於 2025 年 9 月 1 日施行。 這次的修正草案對「b230.1」(輕度聽覺功能障礙)之鑑定基準微調:只有調整六歲以上個案的基準,把現行「或一耳聽力閾值超過 90 分貝(含)以上,且另一耳聽力閾值超過 48 分貝(含)以上者」,修改為「或一耳聽力閾值 90 分貝(含)以上,且另一耳聽力閾值 48 分貝(含)以上者」,屬於「稍放寬鬆」的調整。 我預計在九月份正式施行之後,才會更新聽覺功能障礙試算表的計算規則。 對於上述草案調整內容如果有任何意見或修正建議,最遲可以在 2025 年 04 月 08 日之前向護理及健康照護司陳述意見或洽詢,聯絡方式如下: 承辦單位 衛生福利部護理及健康照護司 地址 115204 臺北市南港區忠孝東路 6 段 488 號 聯絡人 王技士 電話 (02)85906666 分機 7128 傳真 (02)85907072 電子郵件 nhwhc415@mohw.gov.tw
今天沒有什麼特別規劃地,去了一趟弟弟植葬的墓園。 一樣的小坡,一樣的那棵樹,樹下已經完全認不得,整個園區也跟幾年前初到的時候變化不小。 還記得當年下葬的時候,公墓管理處的人說過基本上同一個位子隔幾年就會循環再葬,大概就是這麼一回事吧。 弟弟回歸了土地,不再有什麼塵世束縛,也挺好。
如果不想看說明、教學什麼的,可以直接到 GitHub 取得台灣社政輔具常見醫療器材許可證字號資料表產生器。 各縣市輔具中心協助辦理輔具費用核銷作業時,經常需要查核醫療器材字號是否有效,這是件非常耗時而瑣碎的工作。就我所知,輔具中心人員目前大概都透過食品藥物管理署(食藥署)的醫療器材許可證及登錄查詢網站進行查詢,然而大家都感受得到:許多政府機關網站的效能有很大的改善空間,尤其大量查詢多筆資料往往耗時甚鉅,再者政府機關網站也常以維護的名義而暫停服務,很難稱得上有足夠的數位韌性。 照理說,這應該是中央政府委託辦理的輔具中心(例如多功能輔具資源整合推廣中心)很值得投入資源協助各地方輔具中心的事,遺憾地這麼多年來,始終沒有看到這方面的進展,甚至這些中央層級輔具中心的網站自己也有相似的韌性不足問題。 最近我剛好有點空檔,一時興起,著手嘗試處理這個困擾。 資料來源 西藥、醫療器材及化粧品許可證暨相關資料查詢系統有太多(輔具中心用不到的)欄位,不能同時搜尋未註銷及已註銷的資料,每一次查詢都要接受驗證碼考驗,還可能遇到系統維護連不上……這些都是輔具中心使用上的痛點。 幾年前我已經知道在政府資料開放平臺上,有一份醫療器材許可證資料集,以每星期一次的頻率,透過食藥署的系統介接程式,每週與藥證業務管理系統同步更新。既然可以有保證更新有效的資料,能夠整批取得,那麼應該就可以實現高效率的離線查詢功能吧? 此前我用這份資料集製作過台灣助聽器醫療器材許可證字號資料表產生器,以同樣的邏輯,也能夠整理出輔具中心實際會用到、常查詢的資料表版本。我再把原本只是自己用的批次腳本加以調整,整理出台灣社政輔具常見醫療器材許可證字號資料表產生器,提供給大家使用;這些資料表產生器能夠自動下載最新版的醫療器材許可證資料集,再按照我預先定義好的格式,製作整理出適合人類查詢使用的資料表格網頁。 取得資料表產生器 對於一般使用者而言,最簡單的方式是下載最新版的 AT_permit_full_x64.zip 檔案,我已經事先整理好所有要用到的第三方工具,解壓縮後(建議解壓縮到某個固定的路徑,不要事後再三挪動)就能使用。使用者會用到的檔案有四個: AT.html 資料表本身,日常查詢醫療器材許可證字號只需要用到這個檔案 沒有網路連線也能使用 不在壓縮檔內,要先執行更新製作資料表程式,才會產生這個檔案 資料表會標註製表日期、原始資料來源、資料表產生器資訊等 可以使用許可證字號欄位的「快查」功能即時篩選資料,也可以用瀏覽器內建功能進行頁內查找 update.bat 以「單次操作」為前提的更新製作資料表程式 提供處理進度訊息 執行完成後會自動呼叫瀏覽器打開資料表 scheduler.bat 簡化設定工作排程器步驟的工具 可以新增(更新)、測試、刪除排程項目,方便使用者設定是否要自動更新資料表 實際的排程執行內容是 silent_update.bat(見下一項) silent_update.bat 以「定期排程」為前提的更新製作資料表程式 沒有訊息,但是會把操作歷程記錄到日誌檔 執行完成後不會呼叫瀏覽器,也不會有任何提示訊息 update.bat 正在把 XML 檔案轉換成便於查詢使用的靜態網頁。 使用者可透過 scheduler.bat 管理自動化工作排程。 用我這套產生器製作出的 AT.html 資料表,不但可以離線使用(不需要網路連線),而且能夠直接在許可證字號、醫材類別等欄位使用快查篩選功能,反應迅速,需要用到的資訊直接一覽無遺。這個資料表還可以根據使用者的作業系統偏好,自動切換為亮色系或暗色系等不同配色。 手動設定工作排程 如果想要讓電腦自動定期更新製作資料表,可以設定工作排程(請注意:建議排程每個月或每季更新一次就可以了,太頻繁更新可能會被當成異常存取)。從 v2024.12.23 版開始,使用者可以利用 scheduler.bat 輕鬆進行工作排程器的相關管理操作;如果需要手動設定,例如想要微調更精細的選項,可以參考以下步驟: 第一步:從 Windows 的開始選單輸入「排程」就能找到 Windows 內建的工作排程器。 第二步:在「工作排程器」視窗右側「動作」面板,按一下「建立基本工作……」。 第三步:在「建立基本工作精靈」對話窗輸入排程工作名稱及描述,兩項都可以隨意填寫,用來提醒未來的自己這是什麼東西。我在這個範例中分別填寫「自動更新輔具醫材字號資料表」以及「更新程式放在桌面,每季第二個星期三下午執行一次」。填寫完成後按「下一步」。 第四步:在「工作觸發程序」步驟選「每月」,然後按「下一步」。 第五步:在「每月」步驟設定預計第一次執行的日期(2025-01-08)、未來每次要執行的時刻(14:00:00)、一年當中只有哪幾個月份要執行(一月, 四月, 七月, 十月)、要在月份中的哪一天執行(於第二個星期三),然後按「下一步」。當然不必跟我設定成一樣的執行規律。 第六步:在「動作」步驟選「啟動程式」,然後按「下一步」。 第七步:在「啟動程式」步驟的「程式或指令碼」欄位,用「瀏覽」按鈕選擇 silent_update.bat 檔案。這個欄位應該包含完整的路徑,例如我這裡呈現的是 D:\JediL\Desktop\AT_permit\silent_update.bat,再來很重要一定要設定「開始位置」不能省略,填寫前一個欄位的目錄路徑部分,例如我在這個例子裡填寫的是 D:\JediL\Desktop\AT_permit\,然後按「下一步」。 即使批次腳本不會產生任何訊息,排程執行的時候仍然會跑出一個命令提示字元視窗,執行完成後才自動關閉;如果希望這個視窗完全不要出現,可以使用 NirSoft 的 NirCmd 工具(免費),或者 NTWind Software 的 Hidden Start 工具(需付費購買)。 以搭配 NirCmd 的方案為例,上述「啟動程式」步驟的各欄位填寫內容要調整如下(請自行代換路徑,這裡先假設 nircmd.exe 放在跟 silent_update.bat 同樣的資料夾路徑): 程式或指令碼 "D:\JediL\Desktop\AT_permit\nircmd.exe" 新增引數 exec hide "D:\JediL\Desktop\AT_permit\silent_update.bat" 開始位置 "D:\JediL\Desktop\AT_permit\" Hidden Start 的用法也很類似,除了執行的程式不同,也要注意引數不一樣,在此先不贅述。 第八步:在「摘要」步驟勾選「當我按 [完成] 時開啟這項工作的 [內容] 對話方塊」,因為我們還有一些設定要調整,然後按「完成」。 第九步:在工作內容視窗(標題會根據剛剛第三步填寫的名稱而異)的「設定」分頁,勾選「在錯過排定的啟動後盡快執行工作」,這樣萬一預定執行的日子遇到放假或出差等原因而沒有開機,接下來電腦開機時才會自動補更新製表。勾選後按「確定」。 第十步:經過前面九個步驟,就完成這項排程工作了,應該可以從「工作排程器 (本機)」底下的「工作排程器程式庫」裡面找到第三步填寫設定的工作,點選工作後也可以從視窗右側「動作」面板底下「選取的項目」裡,試著按「執行」確認產生器是否正常運作,沒問題就收工了;若需要調整排程設定,例如要挪動資料表產生器的路徑位置,也可以從這裡按「內容」來修改,或者按「停用」或「刪除」也可以取消排程。
我最近做了一場簡報演說,我把題目定為「設計給未來的自己」。 這是個講高齡友善設計的場合,但是我不喜歡「高齡友善」這樣的說法,原因是這個說法一方面是在劃定指稱高齡者為他者,並且暗示著「有也不錯」的態度。最終我的簡報內容既不說高齡、也不講友善;我在簡報中帶領聽眾重新認識「人」,重新疏理應該如何「設計」。 我自己覺得這是個很有趣的經驗跟切入方式,所以在跟邀請方討論確認之後,決定把簡報投影片公開,直接以 CC0 拋棄著作權,歡迎大家利用:設計給未來的自己_CC0.pptx(PowerPoint 檔案格式) 關於簡報投影片,有幾點補充說明: 我使用的字型是 Source Han Sans 和 Source Han Serif,這兩個字型並未內建於任何作業系統,可能需要自行下載安裝,簡報投影片的文字排版才會跟我實際播放時的相符。 這份簡報投影片預期要讓聽眾「讀」的文字,我自己抓的最小字型尺寸是 26pt,這是我在準備投影片前,根據邀請方提供的場地照片及空間規劃藍圖,估算投影螢幕尺寸、倒數第二排聽眾到投影螢幕間的距離,然後考慮中高齡者舒適閱讀的視角度需求,計算出來的結果。 我簡報時碰巧穿著 Be kind. Be accessible. 這件衣服,跟投影片色系相符。純粹是巧合。
到今天為止,我部落格達到 22 年。 未來也請多多指教。
我近年因為貪圖方便,購置電腦的時候不再自己組裝,而是購買品牌套裝電腦。 前兩天做了某個磁碟映像備份軟體的開機隨身碟,打算要備份新系統,雖然開機沒問題,開機後卻無法看到電腦內的硬碟及 SSD,導致根本無法備份。這個開機隨身碟採用 Windows PE (WinPE) 技術,通常會出現這個情況表示缺少必要的驅動程式。 這個時候購買品牌套裝電腦的優勢就出來了。我目前使用的 DELL 品牌直接在官方網站上提供整理好的 WinPE 11 driver pack,從這裡可以下載到 cab 格式的驅動程式封裝檔,現在的 Windows 系統直接都可以解開才對。 接著我依照《How to Add/Remove Drivers to a Windows WIM/ISO Install Image》這篇文章的教學,直接修改開機隨身碟裡的 boot.wim 檔案,把驅動程式加進去,果然就可以正常使用了。 註:我後來又嘗試把這包驅動程式加到 Windows 安裝隨身碟,這個安裝隨身碟裡有 boot.wim 和 install.esd 兩個檔案要處理;請務必依照《How to Convert Install.ESD to the Bootable .ISO Image in Windows 10》文章內的說明,確認要處理的 SourceIndex,不要直接傻傻的照抄 /SourceIndex:4。
昨天我的舊電腦(它八歲了)開機時遭遇Windows 無法連線到 User Profile Service 服務的錯誤,雖然可以登入,但是無法取得使用者帳號權限資訊,連帶包括桌面都無法載入、無法使用控制台或任何應用程式。 以安全模式登入一切又正常(所以不是 UserProfiles 壞掉的那種情況),從事件檢視器也看不到 User Profile Service 服務有什麼錯誤,常試過系統還原也沒有改善。在網路上搜尋看到有人遇到這個情況的原因是服務的執行帳號莫名其妙地改變了,我檢查過也確認沒這個問題。 後來發現是電腦老舊到效能低落,導致登入的時候 User Profile Service 服務還沒有跑起來⸺不是跑不起來(所以沒有錯誤記錄),單純是還沒跑起來而已。知道這個症頭後,對應措施倒是很簡單:開機的時候放在登入畫面久一點,然後再輸入密碼登入,果然就正常了。
前情提要:本文意圖在盡量簡要說明在不同情境中的像素、點、其他長度單位,也趁此機會加以討論觸控目標尺寸要怎麼設定比較理想。 註:因為篇幅太長了,所以拆成上、下兩篇。上篇主要討論各種長度單位的定義及換算,下篇(本篇)主要討論觸控目標尺寸的建議。 內容目錄 本文內容字體慣例(上篇) 基本觀念(上篇) Apple(上篇) Android(上篇) CSS(上篇) CSS1, CSS2(上篇) 印刷出版(上篇) 數學(上篇) 觸控目標尺寸討論 現有的指引及規範 手指寬度 視線距離 長度換算 後記:關於〈TS3 觸控目標尺寸〉 追加補充:關於 WCAG2ICT 非網頁的長度單位 利用 CSS 參考像素進行計算 閱讀操作距離的極限 使用平均閱讀操作距離的理由 觸控目標尺寸討論 現有的指引及規範 本文到目前為止,已經提到好幾個關於觸控目標尺寸的規範,例如蘋果的《Human Interface Guidelines》、Android 的《Material Design》,這兩套可視為兩大行動裝置陣營的官方文件,經常被其他規範文件沿用或引用。 BBC 的《Mobile Accessibility Guidelines》雖然引用上述兩份規範,實際設立的目標卻是依照(BBC 的)《Global Experience Language》的建議值。 當然不要忘記全球資訊網協會 (W3C) 的《Web Content Accessibility Guidelines》,是各國政府及國際組織經常採用的推薦標準。 上述這些規範文件各自訂下的觸控目標尺寸都不同,我先簡要摘錄整理如下。請注意各規範可能包含強制性的部份跟建議性的部份,我會把強制性的部份特別標示出來(例如不得、應等字樣,採用台灣法律用語慣例)。 Apple Human Interface Guidelines 的規範 觸控螢幕裝置:觸控目標尺寸不得小於 44 × 44 ptApple。 visionOS:相鄰兩個可操作元件的中心點之間,距離不得小於 60 ptApple。 Android Material Design 的規範 觸控目標尺寸不得小於 48 × 48 dp。 建議的觸控目標尺寸為 7 × 7 ㎜~10 × 10 ㎜。 鼓勵設定更大的觸控目標尺寸,以涵蓋更廣泛的使用者族群。 非觸控式的其他指標 (pointer) 操作目標尺寸不得小於 44 × 44 dp。 鼓勵在(觸控或指標操作)目標區域之間,提供 8 dp 或更大的間隔距離。 BBC Mobile Accessibility Guidelines 的規範 建議觸控目標尺寸範圍為 7 × 7 ㎜~10 × 10 ㎜。 建議觸控目標尺寸不小於 7 × 7 ㎜。 觸控目標應符合以下所有條件規範: 應存在某個包含觸控目標在內的 7 × 7 ㎜區域範圍,在此範圍內不會觸發其他目標。這個區域範圍稱為排他區 (exclusion zone)。 實際有效的觸控目標尺寸不得小於 5 × 5 ㎜。 建議觸控目標之間,間隔距離不小於 1 個裝置像素。 iOS: 觸控目標尺寸不得小於 44 × 44 ptApple。 觸控目標之間,間隔距離不得小於 1 ptApple。 Android: 觸控目標尺寸不得小於 48 × 48 dp。 觸控目標之間,間隔距離不得小於 8 dp。 觸控目標之間,間隔距離不得小於 1 pxAndroid。 HTML: 觸控目標尺寸不得小於 7 × 7 mmCSS。 建議觸控目標尺寸不小於 9 × 9 mmCSS。 BBC Global Experience Language 的規範 建議觸控目標尺寸不小於 7 × 7 ㎜。 觸控目標應符合以下所有條件規範: 應存在某個包含觸控目標在內的 7 × 7 ㎜區域範圍,在此範圍內不會觸發其他目標。這個區域範圍稱為排他區 (exclusion zone)。 實際有效的觸控目標尺寸不得小於 5 × 5 ㎜。 A群設備(螢幕寬度範圍 0~319 邏輯像素)若提供觸控操作的情況: 觸控目標尺寸不得小於 24 × 24 邏輯像素。 建議觸控目標尺寸不小於 32 × 32 邏輯像素。 應存在某個包含觸控目標在內的 24 × 24 邏輯像素區域範圍,在此範圍內不會觸發其他目標。這個區域範圍稱為排他區 (exclusion zone)。 建議排他區不小於 32 × 32 邏輯像素。 建議可對文字連結設置排他區。 B群設備(螢幕寬度範圍 320~599 邏輯像素): 觸控目標尺寸不得小於 32 × 32 邏輯像素。 建議觸控目標尺寸不小於 44 × 44 邏輯像素。 應存在某個包含觸控目標在內的 32 × 32 邏輯像素區域範圍,在此範圍內不會觸發其他目標。這個區域範圍稱為排他區 (exclusion zone)。 建議排他區不小於 44 × 44 邏輯像素。 建議可對文字連結設置排他區。 C群設備(螢幕寬度等於或多於 600 邏輯像素): 觸控目標尺寸不得小於 32 × 32 邏輯像素。 建議觸控目標尺寸不小於 44 × 44 邏輯像素。 應存在某個包含觸控目標在內的 32 × 32 邏輯像素區域範圍,在此範圍內不會觸發其他目標。這個區域範圍稱為排他區 (exclusion zone)。 建議排他區不小於 44 × 44 邏輯像素。 建議可對文字連結設置排他區。 D群設備(螢幕寬度等於或多於 600 邏輯像素,預設不以觸控方式操作): 觸控目標尺寸不得小於 24 × 24 邏輯像素。 建議觸控目標尺寸不小於 32 × 32 邏輯像素。 應存在某個包含觸控目標在內的 24 × 24 邏輯像素區域範圍,在此範圍內不會觸發其他目標。這個區域範圍稱為排他區 (exclusion zone)。 建議排他區不小於 32 × 32 邏輯像素。 建議可對文字連結設置排他區。 W3C Web Content Accessibility Guidelines 的規範 Level AA (Success Criterion 2.5.5) 以下各項應至少符合其中一項: 指標(含觸控)操作目標尺寸不得小於 24 × 24 pxCSS。 以指標(含觸控)操作目標區域中央位置為圓心、直徑 24 pxCSS 的圓形範圍內,不得涵蓋或交疊其他指標(含觸控)操作目標,亦不得涵蓋或交疊其他指標(含觸控)操作目標區域中央位置為圓心、直徑 24 pxCSS 的圓形範圍。 若在同一個畫面或頁面中,對相同功能效果或目的的操作提供多個指標(含觸控)操作目標,其中應至少有一個符合 Success Criterion 2.5.5 規範要求。 指標(含觸控)操作目標為文字段落內的文字連結。 指標(含觸控)操作目標尺寸受到其他非操作目標的文字內容的行列高度所限制。 指標(含觸控)操作目標尺寸完全由使用者端的軟體控制,例如由瀏覽器或其他的使用者代理 (user agent) 所決定,且網頁製作者未對此操作目標設定任何樣式規則。 指標(含觸控)操作目標的呈現方式受到有效的法律約束,因而無法調整。 指標(含觸控)操作目標的呈現方式受到明確的業務目的限制,因而無法調整。 Level AAA (Success Criterion 2.5.8) 以下各項應至少符合其中一項: 指標(含觸控)操作目標尺寸不得小於 44 × 44 pxCSS。 若在同一個畫面或頁面中,對相同功能效果或目的的操作提供多個指標(含觸控)操作目標,其中應至少有一個符合 Success Criterion 2.5.8 規範要求。 指標(含觸控)操作目標為文字段落內的文字連結。 指標(含觸控)操作目標尺寸完全由使用者端的軟體控制,例如由瀏覽器或其他的使用者代理 (user agent) 所決定,且網頁製作者未對此操作目標設定任何樣式規則。 指標(含觸控)操作目標的呈現方式受到明確的業務目的限制,因而無法調整。 從上列彙整的各規範內容來看,首先要注意到各規範採用的長度單位不同,考量的使用情境差異也很大。舉例來說,BBC Global Experience Language 把設備分成四群,規範內容因此不同;W3C Web Content Accessibility Guidelines 尤其 Success Criterion 2.5.5 更是列出一大堆例外條款,表示這項規範無法使用軟體自動檢測判斷。 舉個呈現方式受到明確的業務目的限制的例子:點陣繪圖軟體的繪圖區域,在任一個邏輯像素觸發的結果都會在對應的位置塗抹色彩,所以實際的觸控目標尺寸是 1 × 1 邏輯像素。如果改變這種呈現方式,就會破壞繪圖軟體的業務目的,因而無法調整;這對於 W3C Web Content Accessibility Guidelines 的判斷而言仍然屬於符合。 手指寬度 且讓我們重新思考:要怎麼訂出觸控操作目標尺寸的遵循規範? 既然是「觸控」,顯然得要考量到實際的「手指」。我們姑且先不考慮使用筆、杖之類輔助科技的操作模式,也先不考慮使用腳趾的情境,先把目光限縮在最多人使用的手指,我們要注意的大概是慣用手的食指跟拇指。在平板電腦或觸控筆記型電腦上,食指的使用比例可能比較高,但在智慧型手機上的拇指使用比例大概也很可觀。使用者的食指跟拇指按下去有多大?我們花點時間來討論。 我手邊 1993 年版的 The Measure of Man and Woman: Human Factors in Design 有當年美國的手指統計資料。美國成年男性食指寬度分布大約從 15㎜到 21㎜,平均 18㎜;拇指寬度分布大約從 14㎜到 32㎜,平均 23㎜。美國成年女性食指寬度分布大約從 13㎜到 18㎜,平均 16㎜;拇指寬度分布大約從 16㎜到 22㎜,平均 19㎜。 職安所在 2024 年出版的 ILOSH112-H311 研究報告也有兩性成年勞工的右手食指寬及拇指寬資料。台灣成年男性右手食指寬度分布大約從 15.0㎜到 19.7㎜,中位數 17.2㎜;右手拇指寬度分布大約從 21.0㎜到 26.8㎜,中位數 24.0㎜。台灣成年女性右手食指寬度分布大約從 12.7㎜到 17.6㎜,中位數 15.2㎜;右手拇指寬度分布大約從 18.5㎜到 23.7㎜,中位數 21.0㎜。台灣整體成年人右手食指寬度分布大約從 13.1㎜到 19.2㎜,中位數 16.3㎜;右手拇指寬度分布大約從 19.0㎜到 26.3㎜,中位數 22.5㎜。 這兩份資料比較下來的結果有點有趣:美國人的食指寬度比台灣人的略寬一點(大概多 0.8㎜),但台灣人的拇指寬度比美國人的略寬一點(大概多 1~2㎜)。這件事我們先放在心上,稍後一起討論。 我們對手指的樣子稍微有點概念了,接著來看看手指要按到的按鈕。人因工程利用各種人體測量的數值,以及力量的計算,自有一套對於「按鈕應該要多大」的規範。1966 年版 The Measure of Man: Human Factors in Design 以及 1993 年版 The Measure of Man and Woman: Human Factors in Design 對於手指操作的按鈕直徑建議相同,都是以 12.7~25.4㎜ 範圍最佳。這組建議數值這麼大,自然是因為在設計實體按鈕,甚至要考慮戴著手套操作等情況。 對於觸控式螢幕的情況,稍微後來一點的一些標準文件也有提到。舉例來說,ANSI/HFES 100-2007 標準在第 6.2.9.1 節建議觸控按鈕不小於 9.5 × 9.5 ㎜;ISO 9241-410 標準建議按鈕尺寸等於成年男性第 95% 百分位的食指寬度。有些互動設計師批評這些標準已經有些年代,對應的觸控技術跟現今主流產品很不一樣,主張觸控按鈕可以再小一點。 Nielsen Norman Group 的 Aurora Harley 在《Touch Targets on Touchscreens》文中建議觸控互動元件不小於 10 × 10 ㎜,理由是能夠縮短操作耗時以及避免極端肥手指的操作困難。這篇文章的主要參考依據是一篇 2006 年的論文《Target size study for one-handed thumb use on small touchscreen devices》,該論文是針對單手握持手機、使用拇指的情形進行研究。論文表示觸控目標尺寸在 7.7 × 7.7 ㎜和 9.6 × 9.6 ㎜兩種情況間,雖然尺寸越大的操作速度越快,但操作的錯誤率沒有顯著差異。論文的結論提出對於離散任務的操作,觸控目標尺寸設計為 9.2 × 9.2 ㎜即相當充分;對於序列任務的操作,觸控目標尺寸設計為 9.6 × 9.6 ㎜即相當充分,比 Nielsen Norman Group 建議的 10 × 10 ㎜都再小一點。 等等,2006 年?當年上市的觸控螢幕手機是 HTC Prophet,螢幕尺寸只有 2.8 吋,初代 iPhone 及 iPod Touch 要到 2007 年才上市,上述這篇論文研究的情境,真的還能適用現今的觸控螢幕設備嗎?這個領域的變化很快,情境跟條件很容易改變到足以推翻已知的最佳實作策略。2021 年末出版的《Touch Design for Mobile Interfaces》是目前仍相當有效的珍貴文獻,作者 Steven Hoober 審視諸多已過時而不再適用的「建議」,用更新的知識及研究重新塑造觸控設計的根基。他根據研究資料,提出觸控螢幕的不同區域需要不同的觸控目標尺寸: 畫面最頂端 例如:版眉區域 11 × 11 ㎜ 畫面上方 例如:分頁頁籤區 9 × 9 ㎜ 畫面中央 通常是主要的內容及互動區域 7 × 7 ㎜ 畫面下方 例如:內容下緣區域 9 × 9 ㎜ 畫面最底端 例如:狀態訊息區域 12 × 12 ㎜ Steven Hoober 在他的網站上提供檢測模版工具(如果買他那本書,也會獲得一套),可以用來實際檢查螢幕上顯示的結果,相當方便。 那麼各位還記得稍早我們發現:台灣人的食指比美國人的窄約 0.8㎜、拇指比美國人的寬約 1~2㎜嗎?如果我們打算用這統計資料,專門針對台灣人進行設計,不在乎其他國籍人種的使用者、先不管台灣人的組成越來越多元,或許可以考慮把中央區域(通常以食指操作)的觸控目標尺寸略縮到 6 × 6 ㎜;我沒有機會驗證這個想法,內心也有個聲音警告我不該忽略其他國籍人種,所以我們還是回到 Steven Hoober 的建議,畢竟有多少證據才說多少話嘛。不過,另一方面來說,若把內容下緣區域(很可能以拇指操作)的觸控目標尺寸略增到 10 × 10 ㎜,倒是不會造成已知國籍人種差異的困擾才對。 Steven Hoober 提倡的這個觸控設計制度相當精緻,不禁讓人擔心:在台灣的產業環境中,有辦法落實嗎?(欸?!)且容我大膽地在未經實證的前提下,提取他的論述意圖,簡化並調整成以下版本: 畫面中央 通常是主要的內容及互動區域 7 × 7 ㎜ 主要動作元件 也常稱為Call To Action (CTA)元件 同一個畫面中建議不超過 5~10 個 例如:確定、儲存、購買等按鈕這類在頁面中最期待使用者進行操作的元件 10 × 10 ㎜ 畫面周邊 頂端、底端、側邊或角落的輔助機制元件 例如:線上客服、系統導覽主選單按鈕等 12 × 12 ㎜ 視線距離 到這裡為止,我們討論的單位長度都還是㎜。隨著手指的討論先告一段落,在把物理長度換算成像素或點這類單位前,還得先來聊聊眼前景象⸺觸控螢幕會位於距離眼睛多遠的地方? 照慣例,我們先從 1966 年版 The Measure of Man: Human Factors in Design 尋找這題的線索。1966 年那個時代背景中,與我們討論觸控操作最相關的情境,是站立在控制面板前的狀態,無論使用者性別,建議距離控制面板都是以 20㏌最佳。 到了 1993 年版 The Measure of Man and Woman: Human Factors in Design 的資料也發生變化,整體(不區分性別)不論是成年群體或高齡群體,平均的閱讀操作控制面板距離皆縮短到 16㏌,即 406㎜。 這圖沒用到…… --> 上述這個406㎜距離比較符合使用電腦搭配觸控螢幕、使用平板電腦等情境,要說是否能夠代表智慧型手機的使用情況還得存疑。2021 年有篇論文《Viewing distance of smartphones in presbyopic and non-presbyopic age》探討了這個議題。這份論文的研究包含 16 至 90 歲的男女共 233 人,依年齡分成非老花組(未滿 40 歲)及老花組(40 歲以上),分析統計結果顯示幾項對比資料: 總平均 368±66㎜ 姿勢的影響 站姿平均使用距離 361±72㎜ 坐姿平均使用距離 374±68㎜ 年齡的影響 非老花組平均使用距離 350±64㎜ 老花組平均使用距離 390±61㎜ 性別的影響 男性平均使用距離 382±63㎜ 女性平均使用距離 347±62㎜ 上述的統計結果呈現性別(研究者認為是體格的差異)及年齡都有很大的影響,而且個別差異很大。我們姑且可以拿368㎜當成智慧型手機的標準使用距離,但別忘了還是要想辦法(例如向作業系統查詢使用者的相關偏好設定、直接提供調整選項等)顧及上述這些差異範圍仍屬合理。 長度換算 整理一下,經過前面一大堆討論,我們已經累積了一些更新的數值: 手臂長度 706.5㎜ 典型智慧型手機操作距離 368㎜ 智慧型手機上的觸控目標尺寸(三種) 7 × 7 ㎜ 10 × 10 ㎜ 12 × 12 ㎜ 現在我們可以利用這些數值,重新以 CSS 像素的定義,換算三種觸控目標尺寸應該對應到多少參考像素,結果如下表: 智慧型手機上的觸控目標尺寸及對應的 CSS 像素 觸控目標尺寸對應 CSS 像素(近似值) 7 × 7 ㎜51 × 51 pxCSS 10 × 10 ㎜73 × 73 pxCSS 12 × 12 ㎜87 × 87 pxCSS 先前我們在討論 Android 時說明到密度無關像素儘管理想很美好,跟現實終究有落差。我想要檢視近幾年 Android 智慧型手機的實際裝置像素密度跟像素密度分組之間的符合情況,無奈 Android 設備的製造商太多,如果說要有代表性,應該還是得看 Google 自己生產的 Pixel 系列手機;很幸運地 Google 提供了這些智慧型手機的硬體規格,我們從 2001 年 Pixel 5a (5G) 起,一路看到 2024 年 Pixel 9 Pro Fold,赫然發現每一款型號的裝置像素密度都不一樣!從最小的 408 ppi (Pixel Fold) 到最大的 512 ppi (Pixel 7 Pro, Pixel 6 Pro),全部落入xxhdpi分組。 索性就把這些型號的裝置像素密度取平均值 (446.8 ppi) 來看待吧!用這個平均值來理解的話,Android 的標準參考設備螢幕特性就不再是 160 ppi,而是接近 149 ppi,表示參考像素默默變大了。總之我們重新以這個數值來換算三種觸控目標尺寸,結果如下表: 智慧型手機上的觸控目標尺寸及對應的密度無關像素 觸控目標尺寸對應密度無關像素(近似值) 7 × 7 ㎜41 × 41 dp 10 × 10 ㎜59 × 59 dp 12 × 12 ㎜70 × 70 dp iPhone 其實也有類似的問題,因為實際裝置的裝置像素密度差異,導致邏輯縮放倍率跟原生縮放倍率不同。我們以同樣的方式,趁這個機會來檢視近幾年的機型,依照 iOS Ref 網站整理的資訊,從 2021 年的 iPhone 13 起各機型雖然都是@3x邏輯縮放倍率,實際裝置像素密度卻有著 460 ppi 跟 458 ppi 兩種,兩種相除之後的結果 (153.33, 152.67) 都小於 iPhone 3GS 的 163 ppi (@1x),同樣也是邏輯像素默默變大的情況。同樣地,我們就取平均 (459 ppi) 來換算三種觸控目標尺寸,結果如下表: 智慧型手機上的觸控目標尺寸及對應的邏輯像素 觸控目標尺寸對應邏輯像素(近似值) 7 × 7 ㎜42 × 42 ptApple 10 × 10 ㎜60 × 60 ptApple 12 × 12 ㎜72 × 72 ptApple 把以上三張表格整合起來,可以得到符合台灣使用情境的智慧型手機觸控目標尺寸建議: 智慧型手機觸控目標尺寸指引建議 觸控區域物理長度CSS 像素Android 密度無關像素iPhone 邏輯像素 畫面中央7 × 7 ㎜51 × 51 pxCSS41 × 41 dp42 × 42 ptApple 主要動作元件10 × 10 ㎜73 × 73 pxCSS59 × 59 dp60 × 60 ptApple 畫面周邊12 × 12 ㎜87 × 87 pxCSS70 × 70 dp72 × 72 ptApple 上表這組觸控目標尺寸建議,理論上,應該可以在三年內上市的智慧型手機,以出廠預設設定、不調整放大顯示的情況下,對大多數使用者提供充分親和易用的使用體驗。但是這組建議可能不適用於平板電腦以及其他觸控螢幕電腦,因為要代入計算的操作距離、產品普遍硬體規格等都不一樣,請務必留意。 警告:請絕對不要無腦地全盤相信我的意見!拜託一定要做使用者研究去驗證,而且要很注意各種細節,包括研究用的裝置特性、軟體版本、作業系統及軟體設定等,更要注意每個地方都有可能未按照規格實作,導致理論與實務的落差,這些都應該在研究開發途中設法補償修正。我在上表提出的尺寸換算數值,其計算過程中有許多假設、猜想,甚至有些草率的決定,我相信一定可以透過研究得到更好的答案。只不過這是我目前就我已掌握的資訊,所能做出最好的猜想罷了。 後記:關於〈TS3 觸控目標尺寸〉 本文一開頭提到行動化應用軟體無障礙檢測指引〈TS3 觸控目標尺寸〉(版本資訊20200817-第1次編撰),這條檢測規則我覺得很有問題,但問題不在於 48dp 跟 44pxCSS 誰大誰小。這條檢測規則的參考資料寫著 BBC Mobile Accessibility Guidelines 的〈Target touch size〉,乍看之下是翻譯後調整格式編排而成,但從範例說明開始就能看出翻譯品質不佳,很多句子語焉不詳,分不清哪些屬於建議、哪些屬於強制,似乎在範例說明裡面又追加規則;HTML 的失敗範例程式碼很有可議空間,這段範例碼不該判成失敗,且這段失敗範例並非來自原文內容,而是編撰這條規則時冒出來的;規則說明、測試程序都和原文的意圖不同,明明原文是以 7 × 7 ㎜為檢測基準,並且要在設計階段檢測,這條規則卻變成 48 × 48 dp 或 9 × 9 ㎜,而且改到設計完成後檢測。整條規則沒有考慮到〈SC 2.5.5 Target Size (Enhanced)〉涵蓋的種種特例情況,勢必會有大量偽陽性誤判。 觸控目標尺寸的規範指引很重要,也有許多檢測方法可以考慮,包括事先指定參考裝置(包含軟體版本、設定配置方式)配合實體物理量測,是國際業界行之多年的模式。萬萬不可在未充分理解國際規範的情況貿然斷章取義! 追加補充:關於 WCAG2ICT W3C 有一份稱為 Guidance on Applying WCAG 2 to Non-Web Information and Communications Technologies (WCAG2ICT) 的非規範性文件(屬於工作小組備忘),用來說明如何把 Web Content Accessibility Guidelines 2.x (WCAG 2) 的規範內容用於各種資通訊科技上,例如用在智慧型手機、電子書、自助櫃檯機(售票機、提款機、資訊站等)、應用程式軟體時,要如何理解相關規範條文;我在摘要整理現有的指引及規範時,原本就已經根據 WCAG2ICT 的建議方式,稍微調整過字句。 WCAG2ICT 正好這兩天 (2024-10-08) 完成修訂更新,發表新版本,其中特別新增一節〈Applying CSS pixel to Non-Web Documents and Software〉,剛好是本文討論的題目。以下我簡要說明這一小節內容跟本文的關係。 非網頁的長度單位 WCAG2ICT 提到非網頁的資通訊科技通常不是採用 pxCSS 長度單位,而是各自定義出不同的邏輯像素單位,例如 iOS 及 macOS 使用的 ptApple 單位、Android 使用的 dp 單位、Windows 使用的 epx (effective pixel) 單位;在這些情況中,建議把 WCAG 2 使用的 pxCSS 單位換算成最接近的各種邏輯像素單位。 本文除了 epx 單位沒有討論到,其餘長度單位正好都依照 WCAG2ICT 建議的方式進行討論及換算。 利用 CSS 參考像素進行計算 WCAG2ICT 提到有些情況下,資通訊科技系統沒有提供邏輯像素單位給設計者使用,但是設計者能夠知道這些產品的具體螢幕硬體規格,或者能夠知道使用者大概的閱讀操作距離及角度;在這些情況中,建議利用 CSS 參考像素進行計算。 WCAG2ICT 提供的計算方式,係沿用 CSS 規範文件舉的手臂長度例子;關於這個手臂長度的數值是否恰當,本文已經提出相關討論,並且在依照 WCAG2ICT 建議的方式進行計算時納入考量。 閱讀操作距離的極限 WCAG2ICT 提到雖然許多資通訊科技都可能用於多種不同觀看距離的情境,但惟有真正適合用來操作的距離才能拿來計算觸控目標尺寸,畢竟「觸控」螢幕如果放在比手臂長度還要更遠的位置,很難說是合理的操作距離。這正是本文進行計算時特別提出操作距離的相關研究資料的理由。 註:WCAG2ICT 在這段說明中提出的例子可能讓人很混淆。那段例子的意思是說:如果你把某個閱讀距離代入計算後,得到一個 CSS 參考像素的視角相當於裝置上 0.28㎜的物理長度的結果,那一定不是合理的使用情境,因為這表示你代入的閱讀距離遠遠超過人類的手臂長度。 使用平均閱讀操作距離的理由 WCAG2ICT 提到使用者實際操作觸控螢幕設備的距離,很可能跟設計者預想的距離不同;舉例來說,許多低視能者用非常貼近螢幕的距離進行閱讀及操作。WCAG 2 包含許多不同面向,如果擬定的閱讀操作距離太遠,導致每個邏輯像素的物理尺寸變大、相同物理長度單位內的邏輯像素數值減小,會導致〈Success Criterion 1.4.10 Reflow〉太過放鬆;如果擬定的閱讀操作距離太近,導致每個邏輯像素的物理尺寸變小、相同物理長度單位內的邏輯像素數值增加,會導致〈Success Criterion 2.5.8 Target Size (Minimum)〉太過放鬆。因此建議以折衷的平均閱讀操作距離來計算,較能兼顧不同需求。 本文討論視線距離時,也是依照 WCAG2ICT 提出的這項理由,來建議要採用的數值。
像素 (pixel, px) 是個很常被誤解的度量衡單位,在不同的情境代表不同的意思,實際上這裡的 1 像素跟那裡的 1 像素並不相等;光是這樣已經夠讓人頭疼,但是事情還可以更混亂複雜,點 (point, pt) 在不同情境也有不同的意思,這裡的 1 點跟那裡的 1 點不相等,這裡點跟像素的換算比例跟那裡的也不同……。 討論觸控目標(能夠經由觸按操作產生效果的區域範圍)前,若不先把這些單位搞懂,直接把各種規範裡的尺寸數值抓出來比較,勢必一頭霧水。最近我收到一個疑問:為什麼〈TS3 觸控目標尺寸〉的測試程序定義到 48 × 48,比〈SC 2.5.5 Target Size (Enhanced)〉要求的 44 × 44 還大?簡短來說,因為這兩處使用的單位不同,實際上若分別以各自的參考標準設備來測量,前者規範的物理尺寸 48dp 比較小(屬於比較寬鬆的規範,因為同樣的顯示空間裡可以塞進更多觸控元件)、後者規範的物理尺寸 44px 比較大(比較嚴格),提問者沒有注意到數值的單位差異,才產生這樣的疑問。 我覺得帶出這個問題,正好提供一個很棒的討論機會,讓我用本文盡量簡要說明在不同情境中的像素、點、其他長度單位,也讓我們趁此機會加以討論觸控目標尺寸要怎麼設定比較理想。 內容目錄 本文內容字體慣例 基本觀念 Apple Android CSS CSS1, CSS2 印刷出版 數學 觸控目標尺寸討論(下篇) 現有的指引及規範(下篇) 手指寬度(下篇) 視線距離(下篇) 長度換算(下篇) 後記:關於〈TS3 觸控目標尺寸〉(下篇) 追加補充:關於 WCAG2ICT(下篇) 非網頁的長度單位(下篇) 利用 CSS 參考像素進行計算(下篇) 閱讀操作距離的極限(下篇) 使用平均閱讀操作距離的理由(下篇) 本文內容字體慣例 本文為了避免誤解,採用以下文字體例: 所有數值單位都以小寫英文字母表示,例如 px 及 pt 等。 計算式中的數值變數都以大寫英文字母表示,例如 PX 及 PT 等。 不論數值單位或數值變數,都以下標方式標記情境脈絡,例如 ptApple 指的是蘋果定義的 pt 單位,而 PTCSS 指的是 CSS 規範中的 PT 數值變數。本文用到的下標包括: Apple iOS, iPadOS, tvOS, visionOS, macOS (Apple) 的定義 Android Android (Google) 的定義 CSS 現行 CSS 標準的定義 CSS21 (已廢止的)CSS 2.1 版標準的定義 CSS20 (已廢止的)CSS 2.0 版標準的定義 CSS1 (已廢止的)CSS 1.0 版標準的定義 印刷 平面印刷出版業界的定義 註:這些下標只加在那些可能造成混淆的數值單位或變數,而不會到處標記,以免本文變得難以閱讀。 描述實際的物理長度時,如果要以英文縮寫來呈現單位,一律採用專用的符號字並加上縮寫標記,例如㎜、㎝、㏌等。 描述矩型區塊時,一律採用邊長的單位來標記在最後面,以利閱讀。舉例來說,長、寬皆為 7㎜的矩型區塊會描述成7 × 7 ㎜,而不寫成7㎜ × 7㎜或7 × 7 ㎟。 「吋」這個字念成「英寸」(inch),所以不寫成英吋。這是依照《國音常用字彙》附錄二〈度量衡之略字〉規範的念法(見第 280 頁)。 在本文以外的文件中,例如各種規範或標準文件裡,並不會如本文這般區分大小寫或下標標記,還請注意。 基本觀念 首先來把基本名詞及觀念再次確認清楚:目前這個時代中,較常使用的顯示媒介包括各種螢幕(例如液晶螢幕、電子墨水顯示器)及印刷品(包含雷射、噴墨、點矩陣印表機的印製結果),在這些媒介中,能夠用來呈現各種色彩變化的最小面積單位,稱為裝置像素 (device pixel)、設備像素或物理像素 (physical pixel);一個裝置像素通常由多個次像素 (subpixel) 構成,例如螢幕上的一個發光體或印刷品上最小的墨跡,是從物理角度所能觀察到的點 (point)。組成單一裝置像素的諸多次像素可能採用各種不同的排列方式 (pixel geometry),因此裝置像素的形狀不一定呈現為正方形。 為了不要再造成更多混淆及困擾,本文不深究下去(有興趣的讀者可以參考《Pixel’s anatomy – logical and physical》等文章),並且先假設裝置像素的形狀就是個正方形,其長度與寬度相同(或者說寬度與高度相同,端看讀者要用什麼角度來思考它),在這個前提下當成度量一段長度(或寬度、高度)或距離的單位(未來若談到〈SC 2.4.13 Focus Appearance〉就會拿來計算面積,不過以後再說吧);此外,接下來的著眼點都是在裝置像素之上,不會再討論關於次像素層級的情況。 另一個本文要先定義的術語是裝置像素密度 (device pixel density),指的是在實際裝置上,框出一個長一吋 (1㏌)、寬一個裝置像素的範圍,計算裡面有幾個裝置像素;也可以理解成「一吋等於幾個裝置像素」的數值,本文表示這個數值的單位固定採用 pixel-per-inch (ppi),即使引用原文也會直接改寫。 註:雖然在很多情況下 ppi 會跟 dpi 混用,但本文把 dpi 保留給某些特定的情境,用以區隔;這個用法與本文援引參照的其他文件可能有所不同,並非本文引用時抄錄錯誤,請務必留意。 Apple 蘋果在 iOS 及 iPadOS 的螢幕尺寸規格文件中,共採用三組數值來描述螢幕尺寸: 邏輯像素解析度 以 ptApple 為單位所計算的解析度。 裝置像素解析度 以 pxApple 為單位所計算的解析度。 邏輯縮放倍率 以 @Nx 格式標記的縮放倍率 (scale factor) 數值。 在蘋果各作業系統 (iOS, iPadOS, tvOS, visionOS, macOS) 中,pointApple 指的是使用者介面的最小呈現單位,本文中稱為「邏輯像素」,這是個跟裝置無關的單位;實際的裝置像素則以 pixelApple 表示。 蘋果鼓勵開發者使用 ptApple 長度單位(而不要使用 pxApple),讓不同裝置間能獲得相似的使用體驗;蘋果處理不同裝置間差異的方法,是對不同裝置定義著不同的邏輯縮放倍率,據此將 PTApple 換算成 PXApple。這個換算公式如下: PXApple=PTApple×邏輯縮放倍率 然而如同蘋果在《iOS Device Compatibility Reference》文件裡提到的,實務上要注意邏輯縮放倍率跟原生縮放倍率 (native scale factor) 不同,這是因為各裝置實際的裝置像素密度差異所致。因此,實際上計算 PTApple 確切長度的公式如下: 物理長度=PXApplePPI=PTApple×邏輯縮放倍率PPI 蘋果在《Human Interface Guidelines》指定的觸控目標尺寸基準為 44ptApple: Give all controls and interactive elements a hit target that’s large enough. For example, on touchscreen devices, a hit target needs to measure at least 44 × 44 ptApple; in visionOS, place controls so that their centers are at least 60 ptApple apart. People with limited mobility need larger hit targets to help them interact with your app. It can be frustrating to interact with too-small controls in any platform, even when people use a pointer. 讓我們拿這個尺寸來套用前述公式進行試算。舉例來說,iPhone 16 Pro Max 的邏輯縮放倍率為 3.0 (@3x),裝置像素密度為 458 ppi,因此 44ptApple 在實際裝置螢幕上呈現的物理長度大約是 7.32㎜;同樣的 44ptApple 在 iPhone 13 mini (@3x, 476 ppi) 螢幕上大約是 7.04㎜,在 12.9” iPad Pro (@2x, 264 ppi) 螢幕上大約是 8.47㎜,在 8.3” iPad mini (@2x, 326 ppi) 螢幕上大約是 6.86㎜,並非真的完全一致。 我自己沒有花時間窮舉計算 44ptApple 在所有蘋果設備上呈現的物理長度,不過若直接追溯到 iPhone 3G (@1x, 165 ppi),計算得到的結果是大約 6.77㎜,這大概是蘋果設想的使用體驗底線。 Android Android 面臨的挑戰是裝置製造商繁多,裝置多樣且複雜,最終 Android 採用了跟蘋果很像的策略⸺但用上不同的思考角度、擬定不同的基本假設、採用不同的長度單位定義、創造更多更複雜的用法,許多誤解跟混淆於是油然而生。 在 Android 世界的「邏輯像素」基本單位稱為密度無關像素 (density-independent pixel, dip, dp),同為使用者介面的最小呈現單位、跟裝置像素密度無關,在道理上和蘋果的 ptApple 相通,但兩者並不相等。Android 在其開發者文件如此定義 dp 單位: One dp is a virtual pixel unit that's roughly equal to one pixel on a medium-density screen (160 dpi, or the "baseline" density). Android 實際的裝置像素同樣以 pixelAndroid 表示。從開發者文件中可以知道,Android 使用 TypedValue.applyDimension() 方法將 DP 換算成 PXAndroid;然而跟蘋果的情況很像,這個換算過程並非直接代入裝置像素密度,而是採用邏輯像素密度(以 (dpi 為表示單位)來計算,這是根據各裝置的像素密度識別符 (density qualifier) 所對應的數值。原則上各裝置要指定最接近實際裝置像素密度的像素密度識別符,因此也稱為像素密度分組 (density bucket)。各像素密度識別符對應的邏輯像素密度如下表: Android 常用像素密度分組 像素密度識別符邏輯像素密度 ldpi120 dpi mdpi160 dpi hdpi240 dpi xhdpi320 dpi xxhdpi480 dpi xxxhdpi640 dpi 有別於蘋果直接設定邏輯縮放倍率的方式,Android 以 mdpi 對應的邏輯像素密度為基準來計算這個倍率。要計算密度無關像素呈現在裝置螢幕上的實際長度時,首先如上述說明換算成對應的裝置像素: PXAndroid=DP×DPI160 接著再依照實際的裝置像素密度計算物理長度: 物理長度=PXAndroidPPI=DP×DPI160×PPI Android 在其 Material Design 3 設計制度中,指定的觸控目標尺寸基準為 48dp: For most platforms, consider making touch targets at least 48 × 48 dp. A touch target this size results in a physical size of about 9mm, regardless of screen size. The recommended target size for touchscreen elements is 7—10mm. It may be appropriate to use larger touch targets to accommodate a larger spectrum of users. 讓我們拿這個尺寸來套用前述公式進行試算。舉例來說(註:本段關於像素密度分組的情況是我的推論,如果實際情況跟我的想法不一樣,請各位先進不吝斧正),Google Pixel 9 的裝置像素密度為 422 ppi,其像素密度分組應該是 xxhdpi,即 480 dpi,因此 48dp 在實際裝置螢幕上呈現的物理長度大約是 8.67㎜;同樣的 48dp 在 ASUS Zenfone 11 Ultra (xhdpi = 320 dpi, 388 ppi) 螢幕上大約是 6.28㎜,在 Samsung Galaxy Tab A9+ (hdpi = 240 dpi, 206 ppi) 螢幕上大約是 8.88㎜,也有著不小的差異變化。 值得注意 Material Design 3 是因為建議採用 7~10㎜的觸控目標尺寸,才訂出 48dp 這個長度;然而從這些試算情形來看,卻能發現 48dp 實際呈現在螢幕上的物理長度沒有達到這段描述中說的 9㎜,採用「標準的 mdpi 設備」的試算結果也只有 7.62㎜,雖然姑且還算符合 7~10㎜區間,考量下來不禁讓人覺得 48dp 或許還不夠大。 若有讀者想要挑戰更複雜的 Android 長度單位,不妨繼續讀下去;如果已經昏頭轉向,建議直接跳到下一節,麻煩的部份還沒結束呢。 Android 以密度無關像素為基準,定義了另一個叫可縮放像素 (scalable pixel, sp) 的文字尺寸單位。依照 Material Design 2 文件的說明,在預設的情況下,可縮放像素跟密度無關像素的尺寸相同,但是會隨著使用者(在 Android 系統中)設定的文字縮放比例而變動;舉例來說,若使用者設定文字顯示要放大到 200%,就會讓 1sp 的實際顯示長度(物理長度)等於 2dp 的。 Android 還有一個叫邏輯點 (pointAndroid, ptAndroid) 的尺寸單位,這個單位會受到實際的裝置像素密度影響,以保持「一吋等於 72ptAndroid」的比例關係,意思是一個邏輯點通常由多個密度無關像素組成。技術上,Android 系統會讀取裝置傳回的 xdpi 及 ydpi 來決定 PTAndroid 跟 DP 間的比例,所以實際上也要注意 ptAndroid 單位仍然存在些微誤差的可能性。 Android 其實也可以使用邏輯吋 (inchAndroid, inAndroid) 單位,這個單位同樣受到實際的裝置像素密度影響,以保持「一吋等於 1inAndroid」的比例關係;因為技術原理是相同的,實際上也還是可能存在些微誤差。 CSS CSS 標準裡有一大堆不同的度量衡單位,其中可用於長度或距離的單位又可分成相對長度單位、絕對長度單位兩大類,都還可以搭配使用百分比單位,以及有個比例表示法。本文只討論 CSS 的絕對長度單位,以免篇幅多出好幾倍……。 關於 CSS 的絕對長度單位,第一個重要的基本觀念是各單位間的換算比例(在同一個 CSS 標準版本裡)固定不變: 1inCSS = 2.54cmCSS = 25.4mmCSS = 101.6qCSS = 6pcCSS = 72ptCSS = 96pxCSS 第二個重要的基本觀念:雖然各單位換算比例固定不變,但是要以哪個單位為基準,卻會依媒體類型而改變。簡略來說,如果是在「印到紙張上」的情況,通常基準是「1inCSS 等於實際的一吋長度」;而在「顯示於螢幕」的情況,則是以 pxCSS 單位為基準,因此螢幕上的 1inCSS 跟實際一吋可能相差甚遠(這跟 1inAndroid 的情況很不同,請務必留意)。 第三個重要的基本觀念:CSS 像素 (pixelCSS, pxCSS) 是個視角單位 (visual angle unit),而非固定的長度單位。這是因為 CSS 可能用在各式各樣的情境及設備,對於網頁作者有太多無法掌控的因素,因此在制定這項標準時,採用的是更偏重「看起來的樣子」的模式,而不那麼在乎「拿一把尺量測的結果」。 我換個方式來說明。讓我們拿一張空白海報紙,在中央畫一個直徑 6 公分的實心圓形,這個實心圓形「看起來的大小」會因為觀看者的眼睛跟紙張間的距離而產生變化:把這張紙放到 1 公尺外,跟把這張紙放在眼前 40 公分處比較,顯然是在 1 公尺外的時候看起來比較小、在 40 公分處看起來比較大。實際來說,眼前 40 公分處紙張上的直徑 6 公分實心圓形,看起來會跟 1 公尺外紙張上的直徑 15 公分實心圓形一樣大,因為這兩個實心圓形會佔據觀看者相同的視角幅度。 CSS 追求的目標是「看起來的感受一致性」,所以如果A裝置的正常使用情境是放在距離觀看者 3 公尺外的地方(例如電子看板)、B裝置的正常使用情境是放在距離觀看者 40 公分處(例如智慧型手機),那麼製作A裝置的廠商就應該把每個 CSS 像素呈現為更大的尺寸,而製作B裝置的廠商可以呈現為較小的尺寸,讓相同 CSS 像素的物件在A、B兩個設備上「看起來差不多大」。時鐘的盤面總是比手錶的盤面大,是一樣的道理。 上述這道理算好懂,但是究竟這個 CSS 像素的基準在哪裡?這就來到第四個重要的基本觀念:各設備應該盡可能讓 CSS 像素的呈現結果趨近參考像素 (reference pixel)。CSS 規範對參考像素的定義是: The reference pixel is the visual angle of one pixel on a device with a device pixel density of 96 ppi and a distance from the reader of an arm’s length. 上述這段定義裡有幾項很重要的細節: 做為參考基準的裝置螢幕,其裝置像素密度為 96 ppi。 做為參考基準的裝置,其正常使用情境是放置在距離觀看者一個手臂長的位置。 從這段定義,我們知道這個參考像素在參考基準裝置螢幕上的物理長度是 (1/96) ㏌,接著使用反三角函數,就能計算出這個參考像素視角θ: θ=tan-1(1/96) 吋一個手臂長 CSS 規範文件以一個手臂長等於 28㏌為例,計算出參考像素視角θ大約等於 0.0213°,順著這個例子,利用三角函數計算某個 PXCSS 在螢幕上的物理長度的公式如下: 物理長度=PXCSS×螢幕距離×tanθ≅PXCSS×螢幕距離×0.0003720 繼續順著這個例子,〈SC 2.5.5 Target Size (Enhanced)〉要求的 44pxCSS 如果呈現在智慧型手機螢幕(假設正常使用情境為拿在眼前 40 公分處),計算出的物理長度大約是 6.55㎜,但若呈現在電腦螢幕(假設正常使用情境為位於眼前 70 公分處),計算出的物理長度大約是 11.46㎜。 同樣的 44pxCSS,呈現的物理長度差異懸殊,這是 CSS 像素本身的特性。實務上還是有太多網頁作者無法掌控的因素:裝置製造商是否正確依照網頁標準來設計及製造裝置?裝置預期的正常使用情境是否恰當?使用者是否真的在裝置的預期使用情境下使用?使用者的身體功能及環境條件是否在預期的變化範圍之內?上述這些問題可能都是否,而網頁卻要在這種混沌之中繼續提供功能,加上使用者可能配置不同的使用偏好,或者搭配不同的輔助科技,這些都是實際進行設計所要面對的挑戰。 裝置製造商實際上怎麼實作這項規範呢?以 Android為例,它實際上設定的規則是把 1pxCSS 的長度表現成 1dp。若我們以 Android「標準的 mdpi 設備」來反推計算(對,三角函數可以拆掉,抱歉前面把計算弄得很複雜的樣子): (1/96) 吋一個手臂長=(1/160) 吋螢幕距離 等號左右移項就變得更簡單了: 螢幕距離=一個手臂長×1/1601/96=一個手臂長×0.6=28 吋×0.6=16.8 吋=42.672 公分 換句話說,在 Android 的設想中,手機應該是個拿在距離眼睛 42.672 公分處使用的裝置……。我們不妨也想想看,這樣的設想是否合理? 接下來本文要從人因 (ergonomics, human factors) 角度深入討論 CSS 像素的計算細節,對此不感興趣的讀者可以逕行跳到下一節。 嚴格來說,CSS 規範文件並沒有「定義手臂長度」,而僅僅是「以 28㏌舉例說明」。換句話說,參考像素可能隨著人類的變化而改變,1pxCSS 的視角也沒有定義成 0.0213°。「以 28㏌來計算是恰當的嗎?」我們必須時時捫心自問。 註:早在 1996 年 12 月 17 日的 CSS1 推薦標準文件裡,就已經寫著For a nominal arm's length of 28 inches,將近三十年來這句話都沒有改動。 美國的人因工程界有本很重要的著作,是 Henry Dreyfuss 編撰、出版於 1966 年的《The Measure of Man: Human Factors in Design》(那個年代的性別意識比較差,書名的 Man 代指人類,書中實際包含兩性資料),根據這本書提供的人體測量資料,美國男性手臂長度分布大約是從 26.5㏌(第 2.5% 百分位)到 30.7㏌(第 97.5% 百分位),中位數(第 50% 百分位)是 28.5㏌;美國女性手臂長度分布大約是從 23.4㏌(第 2.5% 百分位)到 28.3㏌(第 97.5% 百分位),中位數(第 50% 百分位)是 26.2㏌。從這份資料來看,28㏌似乎是偏向代表美國男性的手臂長度。 到了 1993 年,由 Alvin R. Tilley 編修的更新版《The Measure of Man and Woman: Human Factors in Design》(這本書在 2002 年還有出版過修訂版,不過我手邊沒有)更進一步納入未成年、中高齡及高齡、身心障礙者等族群的人體測量統計資料,其中美國成年男性手臂長度分布大約是從 25.5㏌(第 1% 百分位)到 31.5㏌(第 99% 百分位),中位數(第 50% 百分位)是 28.6㏌;美國成年女性手臂長度分布大約是從 23.5㏌(第 1% 百分位)到 29.5㏌(第 99% 百分位),中位數(第 50% 百分位)是 26.5㏌。即使美國人口的手臂長度在這 27 年間稍微變長,還是很難說達到 CSS 規範文件舉出來的28㏌。 稍微對人種歧視議題比較敏感的夥伴,看到這裡應該會忍不住想問:「這都美國人的手臂,台灣人的呢?」 台灣勞動部勞動及職業安全衛生研究所(職安所)曾經進行過數次「我國勞工人體計測調查研究」,研究抽樣涵蓋 65 歲以下兩性成年勞工,在 2017 年出版第一份研究報告(研究案編號 ILOSH103-H316),以台灣中部地區取樣 488 人進行掃描、建模、分析。在這份研究報告中,男性勞工手長大約是從 66.7㎝(第 10% 百分位)到 75.9㎝(第 90% 百分位),中位數(第 50% 百分位)是 71.2㎝,換算約等於 28.0㏌;女性勞工手長大約是從 60.7㎝(第 10% 百分位)到 69.6㎝(第 90% 百分位),中位數(第 50% 百分位)是 65.1㎝,換算約等於 25.6㏌;整體勞工手長大約是從 63.0㎝(第 10% 百分位)到 74.7㎝(第 90% 百分位),中位數(第 50% 百分位)是 68.6㎝,換算約等於 27.0㏌。 依照上述計測統計資料,28㏌也能代表台灣中部地區男性手臂長度,但跟女性手臂長度的落差很大;以全體成年人口來考量的話,在台灣中部地區對於 CSS 像素的計算應該要把手臂長度採 27.0㏌來計算參考像素視角θ比較正確: θ=tan-1(1/96) 吋27.0 吋≅0.0221° 0.0221° > 0.0213°,這個意思是說:在相同參考基準的裝置螢幕上的一個裝置像素,對於台灣人的視角更大。接著再把這個計算結果代入 PXCSS 在螢幕上的物理長度計算公式: 物理長度=PXCSS×螢幕距離×tanθ≅PXCSS×螢幕距離×0.0003858 那麼,在前面試算的例子中,44pxCSS 如果呈現在智慧型手機螢幕(眼前 40 公分),計算出的物理長度大約是 6.79㎜,但若呈現在電腦螢幕(眼前 70 公分),計算出的物理長度大約是 11.88㎜,都比原本的計算結果略大一點,才是較符合台灣中部地區人口身體構造的結果。 職安所在 2022、2023、2024 年分別出版接續的研究報告(研究案編號分別是 ILOSH110-H301、ILOSH111-H308、ILOSH112-H311),主要收案地區是台灣南部 (ILOSH110-H301) 及北部 (ILOSH111-H308, ILOSH112-H311);由於這三個接續研究的執行單位相同,因此在 ILOSH112-H311 研究報告中,把這三個研究案的所有資料整併分析,總取樣人數為 841 人。 前述 ILOSH112-H311 研究報告的資料呈現:男性勞工右手長大約是從 67.78㎝(第 5% 百分位)到 80.67㎝(第 95% 百分位),中位數(第 50% 百分位)是 74.01㎝,換算約等於 29.1㏌;女性勞工右手長大約是從 62.80㎝(第 5% 百分位)到 72.78㎝(第 95% 百分位),中位數(第 50% 百分位)是 67.78㎝,換算約等於 26.7㏌;整體勞工右手長大約是從 63.61㎝(第 5% 百分位)到 79.16㎝(第 95% 百分位),中位數(第 50% 百分位)是 70.65㎝,換算約等於 27.8㏌。 這些新近的研究報告有些嚇人:台灣人的右手是否在這五、六年間,變長了將近一吋?或者是因為收案地區差異、研究執行的單位或設備或方法的差異,才造成兩批次研究間的誤差?總之即使以 2024 年 ILOSH112-H311 研究報告的整體中位數(27.8㏌)來看,仍然比28㏌略短。以這個右手長中位數代入計算,參考像素視角θ大約等於 0.0215°,再代入 PXCSS 在螢幕上的物理長度計算公式如下: 物理長度=PXCSS×螢幕距離×tanθ≅PXCSS×螢幕距離×0.0003747 按照這個情況,44pxCSS 如果呈現在智慧型手機螢幕(眼前 40 公分),計算出的物理長度大約是 6.59㎜,但若呈現在電腦螢幕(眼前 70 公分),計算出的物理長度大約是 11.54㎜。 CSS2, CSS1 回顧歷史,很不幸地,CSS 像素(以及參考像素)的定義曾經變更。基本上,CSS 2.1 的定義跟現行的 CSS 定義相同(註:只不過 CSS 2.1 裡面沒有 q 這個絕對長度單位),而在更古早的 CSS 2.0 定義以及 CSS 1.0 定義中,都是以 90 ppi 當做參考,意味著這些古早的絕對長度單位的換算關係如下: 1inCSS20 = 2.54cmCSS20 = 25.4mmCSS20 = 6pcCSS20 = 72ptCSS20 = 90pxCSS20 1inCSS1 = 2.54cmCSS1 = 25.4mmCSS1 = 6pcCSS1 = 72ptCSS1 = 90pxCSS1 CSS 2.0 及 CSS 1.0 定義的參考像素也分別是相對應的: It is recommended that the reference pixel be the visual angle of one pixel on a device with a pixel density of 90 ppi and a distance from the reader of an arm's length. The suggested reference pixel is the visual angle of one pixel on a device with a pixel density of 90 ppi and a distance from the reader of an arm's length. 這些版本早已廢止,跟現在要討論的題目已經沒有什麼關係。總之本文還是把這些歷史資料列入,以免讀者需要動到超古老的專案或者拿到過時舊文件卻沒注意到定義改變。 印刷出版 平面印刷出版領域自有一套字體尺寸單位,幾乎可以對應到 CSS 定義的絕對長度單位。因為平面印刷出版其實默默地也用到許多網頁技術,所以 CSS 才會納入這些單位,並且規範「印到紙張上」的情況要與平面印刷的結果相同。 照相打字使用的級就是 q印刷 (quarter-millimeter)。 英文打字使用的點數就是 pt印刷 (point)。 公釐就是 mm印刷 (millimeter)。 吋就是 in印刷 (inch)。 派卡就是 pc印刷 (pica)。 比較要特別注意的是號這個單位,這是用在活字排版印刷的規格,號數越大尺寸越小。微軟 Office 軟體裡的字體尺寸單位是「點數」而不是「號」,許多人經常弄錯這點,例如衛福部社家署出版的《臺灣易讀參考指南—讓資訊易讀易懂》書中誤稱為「號」,嚴重牴觸參考指南內容的真正意圖,期待未來能夠修正。 以往平面印刷出版品沒什麼觸控需求,似乎跟本文要討論的主題無關,但隨著虛實整合、控增實境等技術發展,已經有不少實體出版品能夠搭配觸控操作(也包括觸控點讀類型的繪本),這就有關了,大家不妨也多留意這個領域的互動體驗設計。 數學 數學上的「點」是沒有寬度、沒有長度、沒有面積、不佔據空間的。基本上跟本文所討論的事情沒什麼關係,但這裡還是提一下。 因為篇幅過長,本文拆成上、下兩篇。接下來關於觸控目標尺寸的建議等內容,請繼續閱讀下篇。
與本文相關的腳本源碼下載、說明、議題回報等,請移駕至 JediLin/Hearing-Aids-Fitting-Software-Update-Checkers 源碼倉儲。 因為工作或研究需求,而安裝眾多廠家助聽器選配調整軟體的夥伴,必然遭遇管理這些軟體版本的困擾。主流大廠的助聽器選配調整軟體(以下簡稱選配軟體)多半具備線上檢查更新、下載相關媒體庫等功能,這些功能可能要先執行選配軟體後從功能選單裡執行,或者要另外在電腦背景執行「更新檢查軟體」。一旦檢查確認軟體版本更新,這些選配軟體也能自動下載更新所需的檔案,提供安裝之餘也讓使用者能夠另存這些檔案的副本,以便布署到其他電腦上。 然而對於電腦安裝眾多軟體的情況,逐一執行這些軟體顯得不是很有效率,在背景執行所有更新檢查軟體也顯得太耗費電腦資源;又或者因為安全考量,不想把執行選配軟體的電腦接上網際網路,因而無法使用相關的檢查更新功能。有沒有什麼辦法,可以更容易地檢查選配軟體更新、甚至把更新要用到的檔案直接下載呢? 約莫 2022 年 10 月底,在助聽輔具使用者間知名的 HearingTracker 討論區上,有位 Blue 發起了「Universal Hearing Aid Software Downloader」討論串,在 GitHub 上提供他研究後撰寫的 Python 腳本,用來檢查 Phonak Target 及 Signia Connexx 等軟體的更新檔案,後續並陸續增加 Oticon Genie, Oticon Genie 2, Philips HearSuite, Sonic ExpressFit, Unitron TrueFit, Widex Compass GPS, Bernafon OasisNXT, Rexton Connexx, ReSound Aventa, ReSound Smart Fit 等軟體的支援。 然而 HearingTracker 的使用者普遍不具程式開發背景,而且助聽輔具領域向來有許多不肖人士虎視眈眈,即使這些腳本的源碼就在那邊供眾人檢視,許多 HearingTracker 使用者仍對 Blue 抱持懷疑。2023 年春季期間,Blue 刪除了他在 HearingTracker 發起的文章(討論串仍然保留著,更名為「[post deleted]」),他在 GitHub 的 Bluebotlabz/Hearing-Aid-Software-Downloaders 源碼倉儲也轉為不公開(或刪除),不過有幾個人曾對源碼分支 (fork),例如 Markismus/Hearing-Aid-Software-Downloaders;我自己從 v1.7.4 版起開始在本地端留存備份,最後保留到的版本為 2022 年 12 月 6 日 v1.8.0 的釋出候選,我從 2023 年初起,開始著手擴充支援的軟體項目。 首先我以 Blue (Bluebotlabz) 撰寫的 Unitron 腳本為基礎,改寫出 Hansaton 腳本,再從 Signia 腳本改寫出 Audio Service 及 A&M 腳本;後來我獨自對 Starkey Inspire OS 及 Starkey Pro Fit 進行研究,利用 Blue 的 libhearingdownloader.py 函式庫完成相關腳本。 這些改寫及研究的過程細節暫且擱置不細說,有興趣一起研究的夥伴姑且可以留意幾個細節: 有些軟體更新檢查的 API (Application Programming Interface) 會核對本地端及遠端的時間差異,如果相差太多則視為異常呼叫而不傳回檢查結果。 有些軟體的更新布署採分區進行的機制,因此呼叫 API 代入的國家地區代碼將導致傳回不同的檢查結果。目前為止我還沒有發現哪套軟體會根據 IP 地址來判斷國家地區,但不代表未來也不會有。 除此之外,我覺得原本 Blue 採用的名稱(「下載器」)很容易招來不必要的關注,所以我決定改稱為「更新檢查器」。目前我維護調整過的版本也已經放到 GitHub: JediLin/Hearing-Aids-Fitting-Software-Update-Checkers。對於只是想要「使用」這些腳本的夥伴,相關步驟的簡要說明如下: 下載並安裝最新版的 Python,記得要把 python.exe 路徑加入 PATH 環境變數,然後要重開機(這個步驟每台電腦只需要做一次)。 下載最新版的 Hearing-Aids-Fitting-Software-Update-Checkers.zip 檔案並解壓縮。 執行(例如用游標雙擊)前一步資料夾中的 start-Windows.bat 批次檔,接下來依照畫面指示進行即可;初次使用可能要花比較多時間,因為程式腳本需要安裝相關的函式庫,之後就會快很多了。 大概是這樣。詳細說明請參考上述腳本的 README 文件;如果對程式腳本有任何修改意見,歡迎直接提出修改建議給我,或者發議題也可以。
不依賴檢核表 註:這篇本來應該趁著昨天 (2024-05-16) 第 13 屆 Global Accessibility Awareness Day (GAAD 2024) 刊登的。
到處查資料以及搜尋產品後,發現 Samsung Galaxy S20 的鏡頭凸起 (camera bump) 部分的尺寸是 34㎜ × 17㎜,正好跟我目前保護殼的鏡頭開孔尺寸相同,而且目前市面上還能買得到 Galaxy S20 的鏡頭滑蓋保護殼,很有機會能夠移植來用。 不過,我對於這剛剛好的尺寸有點擔心,而且 Xperia 5Ⅴ的兩顆鏡頭分別是廣角跟超廣角,考慮到保護殼及保護蓋邊框的厚度,很難說會不會遮擋到鏡頭取景邊緣。為了保險起見,我先訂了兩個 Galaxy S20 的鏡頭滑蓋保護殼來試做,隨後又訂了鏡頭凸起部分略大一點(沒查到確切尺寸,我是找照片拿尺在螢幕上估量長度)的 Galaxy Note20 鏡頭滑蓋保護殼。 我原本使用的 Xperia 5Ⅴ保護殼的整個底面高度已經高於鏡頭高度,加裝的鏡頭滑蓋倒是無論如何也不會碰到鏡頭。 其實若不是為了讓保護殼仍然可以摺立,我應該會選擇用 Galaxy S20 保護殼的鏡頭滑蓋。不過,就這次動手移植的成果來說,還算滿意啦;我另外有幾個備用的 Xperia 5Ⅴ保護殼,或許就會把那兩個 Galaxy S20 鏡頭滑蓋先黏上去。
「我想要快速地把這堆檔案從這個設備傳輸到那個設備」,如此簡單的需求,令人訝異地難以實現。十幾年前,行動通訊邁入 3G 時代,每個人手邊開始常態地攜帶多個電腦設備(包括智慧型手機),在設備之間傳輸檔案也成為日常生活的一部分。這個看似簡單的需求,隱藏著許多挑戰: 跨平台 不是每個人都願意把自己鎖在特定廠商打造的生態環境。舉例來說,我曾經同時擁有 Windows 電腦、Linux 桌面設備、mac 電腦、Android 行動電話、Android 平板電腦、iPod、iPad、Symbian Belle 行動電話,意味著光靠著微軟、蘋果、榖歌等廠商提供的解決方案,都沒辦法涵蓋我手上所有的設備。 傳輸速度及檔案大小 也許一口氣需要傳輸幾千個檔案,也許需要傳輸幾十甚至幾百 Gigabytes 的檔案。我需要盡量快的傳輸速度,為此我可以犧牲一些安全性,意思是我不需要傳輸過程中的加密解密。 資料夾 有時候需要連同資料夾以及子資料夾結構一起傳輸。當然可以先把資料夾壓縮再傳輸,但是這樣往往花費更多空間、時間,操作上也更麻煩。 區域性 只是要把檔案從自己的某個設備傳輸到另一個設備,我不希望這個過程中還需要先把檔案交給另一方(例如各種雲端服務);除了不想過多暴露自己的隱私之外,也希望減少外部依賴,以免網際網路異常或任何雲端服務商因故暫停服務時,就無法順利傳輸檔案。 臨時性 我只想在有需要傳輸檔案的時候才傳輸檔案,不希望為了這種任務還要特地先在各個設備上架設檔案伺服器;換句話說,這個機制應該要很容易開關、設定組態應該極簡。 我在 2012 年產生這樣的需求,當時已經有個很合適的開放源碼解決方案:Emanuele Colombo 開發的 Dukto。很快地,Dukto 進入我的生活。 然而 Dukto 在 2013 年推出 R6 版本之後,不再繼續維護開發;Dukto R6 使用 Qt 4,這個 Qt 版本在 2015 年年底已經終止維護,我手上陸續更新的設備開始遇到無法安裝或執行 Dukto 的挑戰,然而接下來十年,市面上所有號稱「Dukto 接班人」的解決方案通通無法真正取代 Dukto 的性能與便利。 拜開放源碼所賜,仍有其他開發者接手分支,讓 Dukto 至今仍然能夠繼續傳承下去: Xu Zhen xuzhen/dukto-qt5 專案把 Dukto 移植到 Qt 5 及 Qt 6,可在新版的 Android、Linux、macOS、Windows 等系統上編譯安裝,並提供預先編譯好的 Android (arm64-v8a_qt6, armeabi-v7a_qt6, multiabi_qt5, x86_qt6, x64_qt6) 及 Windows (x86_qt5, x86_qt6, x64_qt6) 安裝套件,以及適用於 Ubuntu 的 PPA (Personal Package Archives)。 Kafabih Rahmat kafabih-kr/dukto 專案也提供適用於 Linux 及 Windows 的執行套件。 Trọng Phạm Tian Media Transfer 是與 Dukto 相容的 Symbian^3 應用程式,比原始 Dukto for Symbian 更為穩定。 Davide (Dede) Dukto Pro 似乎是唯一存在的 iOS/iPadOS 版本分支,不過此刻似乎已經無法購買或取得了?我自己有幸在多年前購入,目前在 iPad mini (5th Generation) 還能夠使用。
您可以订阅此RSS以获取更多信息