我自己也不知道有多少次我曾试着用 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 tabe.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来动态地设置标题。不管你做什么……请为你的用户着想。