[转]Accesskey引起的一点点思考

Access key 是什么?~估计除了做 Web 开发的没多少人知道,Access key 是网页提供的快捷键。先回到软件界面,看下我的 Opera 的菜单,我的 Opera 是修改过的,中英文混在一起。

中文的作法一般都是在文字后面加个括号,里面的键值用下划线标出。而英文一般是把开头当成键值,如有重复的就推到第二第三,如果那个单词比较倒霉,所有字母都有跟别的有冲突又排在最后面的话,一般做法也不会像中文一样加括号标值。而是调整其他的来解决冲突,这年头,视觉第一!中文什么好办法,统一加括号。这是系统提示的热键(比较懒,没去查它叫什么名?),按下 alt+key 可直呼出,不知道有多少人使用鼠标去点多一些。

回到网页中,在网页里,一样有差不多功能的东东。大家叫它Access key,貌是最近流行滴样子。
<tag accesskey="x">标签添加属性accesskey,属性值就是对应的键</tag> 相关资料:http://www.w3.org/TR/1999/REC-html401-19991224/interact/forms.html#access-keys

一般按法也是 alt+key 来选中。不过各浏览器都不大一样。
IE系列使用alt+key,再加Entet回一下下车(如果是链接的话。)
FF2.0以下的是也是使用alt+key,不过如果是链接的话,直接打开,Netscape也是直接按Alt+key
FF2.0的,官方说:网页提供的快捷键 (Access key) 现在在 Windows 上请以 Alt+Shift+Key 来使用,在 Mac OS X 为 Ctrl+key,Unix 则是 Ctrl+Shift+key。,可是我的SUSE上的FF2.0仍然是用 Alt+Shift+Key,不知道是算什么系统。。-_-!!
除了alt+key外还要多按个键的做法是为了避免与浏览器的冲突,想法是好滴,可单手按起来并不方便。
Opera的是按下Shift+Esc 激活accesskey面板。再接Key直接选择,这是我以前做的小站的部分截图

跟Opera使用方式差不我的还有Konqueror,Konqueror 是个按下Ctrl 激活 accesskey 面板,除去已经分配的 accesskey外,会自动把其他的键按页面链接的顺序按XXX条件分配,字母分完了就分配数字,都分完了后面的就没有。不过Konqueror 这个浏览器,估计没什么人会去用,现在 linux 的发行版大多默认是 Firefox 。

Mac OS X 上的我就不知道。没钱买装的起这种系统的机子。x86的装了n个版本,N台机子,都没装上一个图型界面可用的。如有使用Mac OS的朋友告知一下,也许我哪天会用上Mac不用再想这个问题。

知道了accesskey 怎样操作后,思考一下,它应该用在什么地方。
一般来说,非打字状态下,我左手是放键盘左边或者拿烟,右手抓住鼠标,以防给人抢了。
如果有明显提示的 accesskey 并在 key 是键盘左边,我单手能很方便按到时才可能会使用,我比较懒 ^_#。

为什么说要有明显提示的 accesskey 才可能会使用会使用呢?我以前做的小站。是使用tip来提示的,我连自己做的东西都忘记了,更别说别人的。而如果按一个键要我把整只左手移到键盘的右边,我宁可使用鼠标操作。
那什么是明显的提示呢。看一下小甘甘滴小站吧,注意最上面的导航菜单。英文还是比较好做一点点,可以抽个字母来用,中文的我并没想到什么好一点的办法。也许像窗口的菜单的一样是个办法,中文的字并不能全排进键盘那些键里,就算可以排进去,又有多少人能记得住。

accesskey 的值可以是字母跟数字。一些浏览器并没有解决网页里跟浏览器里的按键冲突。 所以,并非所有的字母都适合使用。同时,一些浏览器的数字并不能使用小键盘里的数字。比如FF,
如果一个人会在网页里使用别人提供 accesskey 的话,理论上他也会使用浏览器上的来完成一些操作。当然,这只是我个人想法,并不知道别人是否也是这样。也许别人跟我一样,IE只是用来调试网页使用的。

如果在网页里使用的 accesskey 与浏览器上的菜单重叠了,比如 "V" 给网页用了,我就不能按 Alt+V, C 这样简单的在IE打开源文件来看,哎!做开发的人一天就知道看代码。 希望有在网页使用accesskey 的朋友不要选择与浏览器的有冲突的键。

除了菜单。还有什么地方常会用到呢?一般来说是表单,录入文字时我会使用双手。按键范围也就就大了。比如像一位台湾的朋友OOO的blog,在评论时可以用 accesskey 来选择要填的地方。像这样操作的确方便了点,不过我一般都不用。
一般我看文章时。右手还在鼠标上,拉到评论时,会顺便点在第一个 input 里,之后一般是按 Tab 来跳到下一个 input 或者别的,要返回上一个时,是按 Tab+Shift 来跳回,怎样说 Tab 键也是比较大一点的,方便按一点。

说着说着,好像accesskey 用处并不怎样的样子。其实,因为我们一般有鼠标用,如果没有鼠标呢?所以,大家买手机时最少得买有蓝牙可以控制电脑滴,要是鼠标不小心坏了,还可以临时当下鼠标用。在现在多数网站光使用Tab都比较难用滴,又有多少使用AJAX技术的网站来提高用户体验~结果是让我在鼠标出现问题时,连唯一的Tab都没用没了。

除去 accesskey 外,还有一些网站,强制使用键盘的某些键配合js来完成一些操作。比如按Home键就跳到首页,方向键向左是跳到上一篇文章,向右是跳到下一篇。有时,用着是挺方便的;有时,也许会很烦,因为原来的功能没了。

请不用在本小站尝试 accesskey,因为没有做之类的功能,只是昨晚有个朋友问到 FF2.0 按了没反应的问题,便写下自己的一些想法。也许,下一次改版,我会把小站做得更像样,也许,改版都可以省掉,因为很懒,忙其实只是个华丽的借口。

(0)

相关推荐

  • [转]Accesskey引起的一点点思考

    Access key 是什么?~估计除了做 Web 开发的没多少人知道,Access key 是网页提供的快捷键.先回到软件界面,看下我的 Opera 的菜单,我的 Opera 是修改过的,中英文混在一起.中文的作法一般都是在文字后面加个括号,里面的键值用下划线标出.而英文一般是把开头当成键值,如有重复的就推到第二第三,如果那个单词比较倒霉,所有字母都有跟别的有冲突又排在最后面的话,一般做法也不会像中文一样加括号标值.而是调整其他的来解决冲突,这年头,视觉第一!中文什么好办法,统一加括号.这是系

  • 提高网页的效率 Use YSlow to know why your web Slow第1/2页

    所以网页的效率绝对是最值得关注的方面.虽然我们在 <如何提高网页的效率(上篇)--提高网页效率的14条准则>提到了如何提高网页效率的14条准则,但是如何知道我们现在的网页的效率到底如何?到底处于怎样一个级别?又有哪些方面做的不够好,需要改进呢?也许,你会说,问一下用户不就知道了吗?但是相比感性比例占据太大的用户感受而言,理性的工具和数据更具有说服力.本篇就将向你介绍一款评测网页效率的工具--YSlow(why slow,这个名字起的太好了). yslow YSlow是由Yahoo开发者团队发布

  • Java建造者设计模式详解

    建造者模式(Builder):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 使用场景: 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时. 当构造过程必须允许被构造的对象有不同的表示时. 通用类图: 举例:我们生活当中有许多设备都是以组装的形式存在的,例如台式电脑,那么有些厂商就会推出一些具有默认配置的组装电脑主机(这里可以用到模板方法模式来实现),顾客可以购买默认配置的产品,也可以要求厂商重新组装一部不同配置不同组装方式的主机.此时,我们就可以使

  • Java设计模式之责任链模式的概念、实现以及netty中的责任链模式

    本文先介绍了责任链模式的概念及简单实现.再贴了netty中对责任链的实现.最后总结了一点点思考. 1.概念相关 1.1.概念 责任链模式为请求创建了一个接收者对象的链,每个接收者都包含对另一个接收者的引用.如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,沿着这条链传递请求,直到有对象处理它为止. 1.2.解决了什么: 客户只需要将请求发送到职责链上即可,无须关心请求的处理细节和请求的传递,所以职责链将请求的发送者和请求的处理者解耦了. 1.3.场景: 1.有多个对象可以处理同一

  • Promise面试题详解之控制并发

    前言 在写这篇文章的时候我有点犹豫,因为先前写过一篇类似的,一道关于并发控制的面试题,只不过那篇文章只给出了一种解决方案,后来在网上又陆续找到两种解决方案,说来惭愧,研究问题总是浅尝辄止,所以今天便放在一起,借着这道面试题再重新梳理一下. 题目是这样的: 有 8 个图片资源的 url,已经存储在数组 urls 中(即urls = ['http://example.com/1.jpg', -., 'http://example.com/8.jpg']),而且已经有一个函数 function loa

  • asp.net动态加载用户控件,关于后台添加、修改的思考

    看下下面这个典型的后台(比较粗糙):说实在,我很厌倦全部用.aspx文件去做,比如"友情连接"这个模块,就有"添加友情连接""修改友情连接""友情连接列表",简单的话,可以把"添加""修改"合成一个文件.每次都去建立一个.aspx文件.我现在的想法是用"用户控件+配置文件"去实现,虽然文件数目可能不会少很多.但在编程到一定地步,我想大家会有跟我一样的想法. 首先需要涉

  • 关于vue.js v-bind 的一些理解和思考

    一.v-bind 初探 它是一个 vue 指令,用于绑定 html 属性,如下: <div id="app"> <p v-bind:title="title">html属性不能使用双大括号形式绑定,只能使用v-bind指令</p> </div> ...... var vm = new Vue({ el: '#app', data: { title: 'title content' } }); 这里的 html 最后会渲

  • 关于Vue.js一些问题和思考学习笔记(1)

    前言 本文不是Vue.js的教程,只是一边看官网Vue的教程文档一边记录并总结学习过程中遇到的一些问题和思考的笔记. 1.vue和avalon一样,都不支持VM初始时不存在的属性 而在Angular里是可以支持的,因为angular采用脏检查的方式实现双向绑定,vue和avalon都是采用setter和getter实现双向绑定 例,如下代码在一秒后不会显示出"xxcanghai"的字样 <div id="app"> <h1>{{obj.tex

  • 基于react框架使用的一些细节要点的思考

    这篇文章主要是写关于学习react中的一些自己的思考: 1.setState到底是同步的还是异步的? 2.如何在子组件中改变父组件的state 3.context的运用,避免"props传递地狱" 4.组件类里有私有变量a,它到底改放在this.a中还是this.state对象中(作为属性a)呢? 1.setState到底是同步的还是异步的? class MyComponent extends React.Component{ constructor(props) { super(pr

  • 从一个VBS脚本学习一点点东西

    不知道是最近还是以前,反正就是这几天经常在网上看到一个刷QQ群的VBS代码. 复制代码 代码如下: Set WshShell= WScript.createObject("WScript.Shell") WshShell.AppActivate "群 - Powers成员交流" for i=1 to 10 '要发的次数 WScript.Sleep 500 '发送消息的时间间隔 WshShell.SendKeys "^v" '要发的内容 WshSh

随机推荐