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="" />

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

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

时间: 2024-10-12 12:06:22

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

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

内容简介 1.第四部分第一课:什么是Web程序员? 2.第四部分第二课:如何成为Web程序员? 3.第四部分第三课:成为优秀Web程序员的秘诀 第四部分:Web程序员(完结篇) 大家好.终于来到了[Web探索之旅]的最后一部分. 我们的第二和第三部分都略有难度,不过这第四部分和第一部分一样,都会比较轻松愉快. 这一课我们来聊一聊Web程序员,Web的文化,如何成为一名优秀的Web程序员. 或许看完这部分,你会跃跃欲试,想要成为一名Web程序员也不一定.毕竟现在Web程序员还是比较吃香的. 第四部

[转] SQL Server 致程序员(容易忽略的错误)

转自:SQL Server 致程序员(容易忽略的错误) 概述 因为每天需要审核程序员发布的SQL语句,所以收集了一些程序员的一些常见问题,还有一些平时收集的其它一些问题,这也是很多人容易忽视的问题,在以后收集到的问题会补充在文章末尾,欢迎关注,由于收集的问题很多是针对于生产数据,测试且数据量比较大,这里就不把数据共享出来了,大家理解意思就行. 步骤 大小写 大写T-SQL 语言的所有关键字都使用大写,规范要求. 使用“;” 使用“;”作为 Transact-SQL 语句终止符.虽然分号不是必需的

SQL Server 致程序员(容易忽略的错误)

原文:SQL Server 致程序员(容易忽略的错误) 标签:SQL SERVER/MSSQL/DBA/T-SQL好习惯/数据库/需要注意的地方/程序员/容易犯的错误/遇到的问题 概述 因为每天需要审核程序员发布的SQL语句,所以收集了一些程序员的一些常见问题,还有一些平时收集的其它一些问题,这也是很多人容易忽视的问题,在以后收集到的问题会补充在文章末尾,欢迎关注,由于收集的问题很多是针对于生产数据,测试且数据量比较大,这里就不把数据共享出来了,大家理解意思就行. 步骤 大小写 大写T-SQL 

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

Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 Web程序员开发App系列 - 开发我的第一个App 待续 目录 前言 源码和App下载 准备工作 查看留言页面 增加留言页面 前言 看了前面几篇文章后我们终于要开始敲代码了,由于所有前端代码都是Html静态问题,所以你用什么开发工具都可以,后台我采用MVC开发,因为Html静态文件需要打包,里面

Java Web 程序员的职业进阶之路

啥也不说了,都在图里了.希望可以给大家的职业规划一些提示,尤其是写了几年程序,却越来越迷茫的同学. Java Web 程序员的职业进阶之路,布布扣,bubuko.com

为Web程序员准备的10个最棒的jQuery视频插件

众多的插件使得 jQuery 成为一个非常流行的框架.现在网站中视频和音频的使用比之前要频繁的多了.而使用jQuery插件可以让这个步骤变得简单很多.因此这里收集了10个非常棒的jQuery视频插件供你选择. 1. Bigvideo.js 这个插件可以很方便的为你的网站添加视频背景.它可以无声的播放背景视频(或一系列视频).你也可以用它制作视频播放列表. BigVideo.js还可以显示大背景图片,这对于不支持自动播放视频的设备来说是非常适合的. 2. jPlayer jPlayer 是一个用J

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

本来这个是我给我们公司入职的新人做一个参考,由于 @张善友 老师在他的微信号转了我的这篇文章<<.Net WEB 程序员需要掌握的技能>>,很多人觉得比较有用,说是看了后知道一步步怎么学,这个让我受宠若惊,另外我看到有些同学文章引用了这部分,但是格式很乱看不清楚,所以我就重新整理一下在博客园发一下,希望对更多人有用,也希望大家补充. 基础部分 C# 基础语法 OOP的概念,面向对象的理解 继承 封装 多态 ASP.NET MVC ( Web Form 用的越来越少,如果你不熟悉We

黑马程序员-常见的一些流和编码表

对象的序列化(对象要实现Serializable序列化接口,类似实现comparable ) 1.操作对象的流:ObjectOutputStream ObjectInputStream ObjectOutputStream : 将 Java对象的基本数据类型和图形写入 OutputStream. 通过在流中使用文件可以实现对象的持久存储. 构造函数:ObjectOutputStream(OutputStream out)//初始化时要有目的 方法: writeObject(Object obj)

@Java web程序员,在保留现场,服务不重启的情况下,执行我们的调试代码(JSP 方式)

一.前言 类加载器实战系列的第六篇(悄悄跟你说,这篇比较水),前面5篇在这里: 实战分析Tomcat的类加载器结构(使用Eclipse MAT验证) 还是Tomcat,关于类加载器的趣味实验 了不得,我可能发现了Jar 包冲突的秘密 重写类加载器,实现简单的热替换 @Java Web 程序员,我们一起给程序开个后门吧:让你在保留现场,服务不重启的情况下,执行我们的调试代码 最近事不算多,所以有点时间写博客,昨天写着写着,测试的同学反馈说有一个bug.我看了下服务端日志,空指针了: 下面会给出详细