Web程式設計師常見的5個錯誤及解決方案
我是那種脾氣暴躁的web使用者,但我認為正是如此才驅使我成為一名良好的web開發人員。我會對那些會導致使用網站變得困難的事情惱火,我認為事情越簡單越方便越好。這裡有五個常見的可用性錯誤,以及如何避免它們的解決方案。
使用submit
代替 click 事件;使用<Form>標籤!
我自己也不知道有多少次我曾試著用 ENTER
鍵(或移動方向/enter鍵)提交表格,然後卻什麼都沒發生。然後我點選或使用提交按鈕,表格才肯做一些事情。這是我對可用性這個領域的問題中最不滿的一個。跳格到提交按鈕,關閉移動鍵盤並滾動到提交按鈕,完全是不需要存在的令人煩不勝煩的多餘步驟。因為只需使用submit
,一切煩惱就煙消雲散:
document.getElementById("myForm").addEventListener("submit", function(e) { e.preventDefault(); // ... Do processing here. Yay for "enter" key submission! return false; });
如果你曾在任何地方犯下這一暴行,請立即修復它。
點選事件:當[CONTROL]或 [META] 也按下的時候,不要阻止
最近我正在網上找新房子,我習慣於開啟一串新標籤。我看到一個列表頁面和命令點選我想要瀏覽照片的幾幢房子,然後會被重定向到在同一個標籤頁面:點選監聽和window.location變化的受害者。在你在任何連結上使用preventDefault時,一定要檢查meta 和control 屬性:
document.getElementById("myLink").addEventListener("click", function(e) { // e.preventDefault(); (bad) if(e.meta || e.ctrlKey) return; // Don't block user if they want to open a new tab e.preventDefault(); });
不要讓你的使用者在你的網站上玩點選後退點選後退的遊戲!
給帶有text-overflow: ellipsis的元素新增標題屬性
新的CSS text-overflow: ellipsis屬性和值真不錯。開發人員習慣於排除萬難地複製這種效果。我完全贊成使用text-overflow: ellipsis
,但如果我將滑鼠懸停於使用它的元素上,你最好丟擲一個title屬性,這樣我才可以很快地看到整個文字:
<div class="ellipsizeMe" title="I am some really, really long text that's going to be ellipsized"> I am some really, really long text that's going to be ellipsized </div>
如果你不希望兩次輸出內容,你可以用JS來動態地設定標題。不管你做什麼……請為你的使用者著想。
不要忘記:focus
和:active
!
很多人在樣式化元素和假設使用者有滑鼠的時候,忘記了這些宣告。還得使用:focus
和:active
宣告:
a:hover, a:active, a:focus { /* change _all_ the pseudos! */ color: #900; }
請記住:下次你建立網站的時候,要給所有頁面新增tab鍵功能:如果你點選tab鍵,卻不知道什麼元素會得到焦點,那就檢查你的樣式表,看看是否忘了新增這些宣告!
使用型別為search和email的input輸入框
當我嘔心瀝血地完成移動裝置上的表格時,卻因為不得不在鍵盤螢幕之間切換以得到一個“@”,而感受到了令人難以置信的沮喪。請務必使用正確的輸入型別:
<input type="search" value="" /> <input type="email" value="" />
我們需要為移動使用者提供快速更新以及非常大的易用性。
但是,開發人員可能會犯數以百計的常見的可用性錯誤,因此期待以後會有更多關於可用性的文章。令人欣慰的是,大多數可用性問題糾正起來非常簡單,如果你閱讀了以上幾個可用性問題的話。如果你有任何關於有用性的問題和解決方案,也歡迎能和我們一起分享!
相關文章
- Elasticsearch常見的5個錯誤及解決策略Elasticsearch
- Hadoop常見錯誤及解決方案Hadoop
- 開發常見錯誤及解決方案
- 5個常見響應式設計陷阱及解決方案
- Python程式設計師的10個常見錯誤Python程式設計師
- 5個常見可用性錯誤和解決方案
- Python程式設計師的常見錯誤Python程式設計師
- 程式設計師可能犯的3個常見SQL錯誤程式設計師SQL
- MySQL資料庫常見錯誤及解決方案MySql資料庫
- 程式設計師筆記|常見的SpringMVC故障排查及解決方案程式設計師筆記SpringMVC
- Java程式設計師可能犯的3個常見SQL錯誤Java程式設計師SQL
- 爬蟲常見錯誤程式碼及解決措施爬蟲
- 9種常見的Android開發錯誤及解決方案Android
- Mark Lutz:Python程式設計師的常見錯誤Python程式設計師
- 程式設計面試中的十個常見錯誤程式設計面試
- 程式設計師簡歷中最致命的「八個錯誤 」及解決方法程式設計師
- 常見的web錯誤Web
- Oracle 常見的錯誤問題及解決方法Oracle
- Oracle新手最經常碰到的6個錯誤及解決方案Oracle
- 9個常見的Android開發錯誤及解決辦法Android
- 好程式設計師分享ApacheSpark常見的三大誤解程式設計師ApacheSpark
- 菜鳥調錯(六)——Hibernate 4.3.x 註解常見錯誤及解決方案
- 小心謹慎!網頁重設計的7個常見誤區與解決方案網頁
- 好程式設計師分享JavaScript幾個最常見的錯誤程式設計師JavaScript
- 好程式設計師web前端分享用JavaScript實現的5個常見函式程式設計師Web前端JavaScript函式
- Code Review 常見的5個錯誤模式View模式
- 常見問題及解決方案
- 海外常見的http錯誤程式碼原因與解決HTTP
- ORACLE常見錯誤程式碼的分析與解決(轉)Oracle
- 中科三方——SSL常見錯誤及解決方法
- SSL證書7大常見錯誤及解決方法!
- 程式設計師常犯的 5 個非技術性錯誤程式設計師
- 5個常見的JavaScript記憶體錯誤JavaScript記憶體
- 爬蟲使用海外HTTP代理時常見的錯誤程式碼及解決方法爬蟲HTTP
- Kafka常見的問題及解決方案Kafka
- Tomcat常見異常及解決方案程式碼例項Tomcat
- 10個資料科學家常犯的程式設計錯誤(附解決方案)資料科學程式設計
- 更好的前端設計形式——設計者犯的常見錯誤及修改方法前端