我是那种脾气暴躁的web用户,但我认为正是如此才驱使我成为一名良好的web开发人员。我会对那些会导致使用网站变得困难的事情恼火,我认为事情越简单越方便越好。这里有五个常见的可用性错误,以及如何避免它们的解决方案。

使用submit 代替 click 事件;使用<Form>标签!

我自己也不知道有多少次我曾试着用 ENTER 键(或移动方向/enter键)提交表格,然后却什么都没发生。然后我点击或使用提交按钮,表格才肯做一些事情。这是我对可用性这个领域的问题中最不满的一个。跳格到提交按钮,关闭移动键盘并滚动到提交按钮,完全是不需要存在的令人烦不胜烦的多余步骤。因为只需使用submit,一切烦恼就烟消云散:

  1. document.getElementById("myForm").addEventListener("submit", function(e) {
  2. e.preventDefault();
  3.  
  4. // ... Do processing here. Yay for "enter" key submission!
  5.  
  6. return false;
  7. });

如果你曾在任何地方犯下这一暴行,请立即修复它。

点击事件:当[CONTROL]或 [META] 也按下的时候,不要阻止

最近我正在网上找新房子,我习惯于打开一串新标签。我看到一个列表页面和命令点击我想要浏览照片的几幢房子,然后会被重定向到在同一个标签页面:点击监听和window.location变化的受害者。在你在任何链接上使用preventDefault时,一定要检查meta 和control 属性:

  1. document.getElementById("myLink").addEventListener("click", function(e) {
  2. // e.preventDefault(); (bad)
  3.  
  4. if(e.meta || e.ctrlKey) return; // Don't block user if they want to open a new tab
  5. e.preventDefault();
  6. });

不要让你的用户在你的网站上玩点击后退点击后退的游戏!

给带有text-overflow: ellipsis的元素添加标题属性

新的CSS text-overflow: ellipsis属性和值真不错。开发人员习惯于排除万难地复制这种效果。我完全赞成使用text-overflow: ellipsis,但如果我将鼠标悬停于使用它的元素上,你最好抛出一个title属性,这样我才可以很快地看到整个文本:

  1. <div class="ellipsizeMe" title="I am some really, really long text that's going to be ellipsized">
  2. I am some really, really long text that's going to be ellipsized
  3. </div>

如果你不希望两次输出内容,你可以用JS来动态地设置标题。不管你做什么……请为你的用户着想。

不要忘记:focus:active

很多人在样式化元素和假设用户有鼠标的时候,忘记了这些声明。还得使用:focus:active声明:

  1. a:hover, a:active, a:focus { /* change _all_ the pseudos! */
  2. color: #900;
  3. }

请记住:下次你创建网站的时候,要给所有页面添加tab键功能:如果你点击tab键,却不知道什么元素会得到焦点,那就检查你的样式表,看看是否忘了添加这些声明!

使用类型为search和email的input输入框

当我呕心沥血地完成移动设备上的表格时,却因为不得不在键盘屏幕之间切换以得到一个“@”,而感受到了令人难以置信的沮丧。请务必使用正确的输入类型:

  1. <input type="search" value="" />
  2.  
  3. <input type="email" value="" />

我们需要为移动用户提供快速更新以及非常大的易用性。

但是,开发人员可能会犯数以百计的常见的可用性错误,因此期待以后会有更多关于可用性的文章。令人欣慰的是,大多数可用性问题纠正起来非常简单,如果你阅读了以上几个可用性问题的话。如果你有任何关于有用性的问题和解决方案,也欢迎能和我们一起分享!

Web程序员常见的5个错误及解决方案的更多相关文章

  1. 【Web探索之旅】第四部分:Web程序员

    内容简介 1.第四部分第一课:什么是Web程序员? 2.第四部分第二课:如何成为Web程序员? 3.第四部分第三课:成为优秀Web程序员的秘诀 第四部分:Web程序员(完结篇) 大家好.终于来到了[W ...

  2. Web程序员必备的CSS工具

    对于web开发来说,CSS是最有效的美化页面.设置页面布局的技术.但问题是,CSS是一种标记性语言,语法结构非常的松散.不严谨.WEB程序员会经常发现自己的或别人的CSS文件里有大量的冗余代码或错误或 ...

  3. .NET WEB程序员需要掌握的技能

    本来这个是我给我们公司入职的新人做一个参考,由于 @张善友 老师在他的微信号转了我的这篇文章<<.Net WEB 程序员需要掌握的技能>>,很多人觉得比较有用,说是看了后知道一 ...

  4. Web程序员开发App系列 - 开发我的第一个App,源码下载

    Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 ...

  5. Web程序员开发App系列 - 调试Android和IOS手机代码(补图)

    Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 ...

  6. Web程序员开发App系列 - 申请苹果开发者账号

    Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 ...

  7. Web程序员开发App系列 - 认识HBuilder

    Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 ...

  8. Web程序员最常用的11款PHP框架

    PHP框架是Web程序员和开发人员最为有用的工具. PHP框架可以帮助用户更快地开发项目. 今天我将为开发人员带来几款最好的PHP框架,希望能对你有用. 1.Agavi Agavi是一款强大的,可扩展 ...

  9. 深圳尚学堂:Web程序员应该会的知识

    互联网的行业里涌入了很多的程序员, 都在为互联网的发展添砖加瓦.程序员可以分为很多种,像Unix程序员.Windows程序员,或是C++程序员.Delphi程序员,等等.今天我们谈谈Web程序员,一名 ...

随机推荐

  1. 第八篇.Bootstrap下拉菜单

    给div一个class “dropdown”,将下拉菜单放在这个div里就可以显示bootstrap的下拉菜单. <div class="dropdown"> < ...

  2. Devexpress Winform Gridcontrol 中根据条件单元格的值改变单元格的颜色等属性。

    提供一下三种方法 1.使用设计器 点击gridcontrol控件,run designer,format Condtions, add,然后进行各种条件的设置. 2.用代码代替设计器. 实例代码: p ...

  3. hibernate中validate的使用(转)

    原文链接:http://blog.csdn.net/xing_sky/article/details/8484551 首先是要加入下面两个包 hibernate-validator-4.1.0.Fin ...

  4. 关于 DWZ 弹出框

    1.弹出框 <a name="***" class="***" href="${** }/***.do?action=***&属性=${ ...

  5. IOS导航栏颜色渐变与常用属性

    (转:http://www.cnblogs.com/Lingchen-start/archive/2015/10/23/4904361.html) 今年很忙,忙的写日志的时间都很少.  少的可怜. 自 ...

  6. JavaScript控制类名(className属性)

    语法:object.className =classname   (注意大小写) 作用:获取元素的class属性,为网页内的某个元素指定一个CSS样式来更改该元素的外观 示例: <!DOCTYP ...

  7. 利用border-radious画图形

    今天才发现,border-radius可以画很多图形,下面跟我来看一下吧: 在设有宽和高的情况下画一个圆: #div1{ /*宽高相等,圆角范围为高或宽的一半或以上*/ background-colo ...

  8. Android Studio运行SlidingView报错 FloatMath函数

    1,错误信息时这样的(图片百度的,但是提醒的是一样的) 我们点击这个错误提示,就会跳到出错的地方 2,开始的时候觉得很蛋疼,因为这个SlidingView是从别处导过来的,没什么问题把...就很久就 ...

  9. jsp取得绝对路径的方法(避免请求转发的方式导致路径错误)

    <%String path = request.getContextPath();String basePath = request.getScheme()+"://"+re ...

  10. Vue.js的计算属性

    开始用vue会把所有的模版上的数据都放到data属性里,或者有的时候data属性里变量多了之后觉得有些只是用一次的变量就直接写到模版里了,后来看到同组的同事在用computed属性,就又去查了一下ap ...