`
yiminghe
  • 浏览: 1460242 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

基于mvc具备可访问性的按钮设计

    博客分类:
  • ui
阅读更多

借鉴自强大的 google button .

 

mvc 分解:

总体架构:

 

 

 

 

 

Model and control :

 

不涉及 ui 渲染,用来表示按钮的实质,按钮具备以下数据属性:

 

content : 按钮显示值

 

value : 按钮的内在存储值

 

tooltip : 按钮的鼠标掠过(得到焦点)提示

 

described-by : wai-aria 可用性需要,按钮的具体描述

 

disabled : 按钮是否禁用

 

 

按钮的 control 层会触发一些事件,常用的就是 click (同时需要考虑键盘的可访问性,enter,space 也会触发click),并根据用户交互通知 view 层渲染 UI。

 

 

View :

 

专注于 UI 渲染,根据 control 层以及 model 层的状态来渲染对应的 UI。

 

最顶层抽象为 buttonrender ,为一个盒子 mixin 而成,不代表具体渲染器,只用于描述 ui 属性,以及指定 role 为 button

 

 

最简单的就是 nativerender ,仅仅使用内置 button 渲染,那么用户交互状态产生的 UI 变化由系统控制,并且可访问性方面也不需多做。

 

 

或者可以自己使用 div 渲染自己的 button ( cssrender ),省事的话是单层 div

 

通过css3控制在除ie<9下的按钮圆角,还需要根据control层同步自己渲染的ui。

 

1. focus/blur :渲染/取消 focus 样式。

 

2.mousedown/up : 渲染/取消 active 样式,并更新 aria-pressed 增强可访问性。

 

3.mouseenter/leave : 渲染/取消 hover 样式。

 

4.disabled : 渲染/取消 disabled 样式,去除 tabindex(键盘导航不可达),更新 aria-disabled

 

也可以使用双层 div 在所有浏览器下模拟圆角 ( customrender )

 

customrender 和 cssrender 的不同之处主要在于,初始渲染时生成双层 div 即可:

 

.outer { border-width: 1px 0;}

.inner {
  margin: 0 -1px;
  border-width: 0 1px;
}

<div class='outer'>
<div class='inner'>
</div>
</div>

 

另一点就是需要通过 aria-labelledby 指定按钮的真正内容所在节点(最内层),其他都是纯粹装饰!

 

demo :

 

customed button for kissy

 

 

 

refer :

 

button role 在可访问性中的位置

 

 

 

 

  • 大小: 61 KB
  • 大小: 18.4 KB
分享到:
评论
2 楼 yiminghe 2011-04-27  
xmind
1 楼 mylove4 2011-04-21  
敢问兄台您用的什么工具画的图?很漂亮啊

相关推荐

    银行管理系统 mvc设计模式

    银行管理系统是一种复杂的软件应用,它基于MVC(Model-View-Controller)设计模式,用于处理银行的各种业务操作,如账户管理、交易处理、客户信息维护等。MVC模式是软件工程中常用的一种架构,旨在提高代码的可维护...

    基于MVC4+Bootstrap3企业门户网站源码(前台+后台).zip

    - 主要特点包括栅格系统、可自定义的排版、表单、按钮、导航等元素,以及强大的JavaScript插件如模态框、下拉菜单和轮播图等。 3. **Java, C#, ASP.NET, PHP**: - 这些是标签中提到的技术,暗示源码可能涉及到...

    H5智能内核-基于MVC架构的全新Zoomla!逐浪CMS2 x3.8发布

    逐浪CMS团队发布其年度最后一个大作,也是目前国内首个基于MVC架构的厂商级dotNET框架CMS- Zoomla!逐浪2 x3.8 众所周知,目前面向云与大数据是今天互联网的大势所趋,而MVC框架则是目前最流行的开发框架之一...

    基于EF+MVC+Bootstrap的通用后台管理系统及架构

    **基于EF+MVC+Bootstrap的通用后台管理系统及架构** 在现代Web开发中,构建一个高效、可扩展且用户...通过合理的架构设计和最佳实践,我们可以创建出具有高度可复用性和可扩展性的系统,以应对不断变化的业务需求。

    基于asp.net+Web+mvc4.0 EasyUI 最新 权限管理 开源 MES建材管理系统源码

    本文将详细探讨一款基于ASP.NET、Web以及MVC4.0框架,结合EasyUI进行界面设计的开源建材管理系统源码,特别关注其权限管理功能。 首先,ASP.NET是微软推出的一种服务器端编程框架,它为开发者提供了丰富的工具和API...

    基于hibernate、spring、spring mvc、bootstrap的管理系统实现

    它遵循模型-视图-控制器(MVC)设计模式,将业务逻辑、用户界面和数据访问分离开来。Spring MVC处理HTTP请求,调用业务层方法,然后将结果转换为用户友好的视图。在这个管理系统中,Spring MVC负责接收用户请求,...

    通用asp.net mvc5 Easyui开发框架源码.zip

    ASP.NET MVC5是一种用于构建动态网站的开源框架,它结合了Model-View-Controller(MVC)设计模式的灵活性和Web Forms的便利性,提供了强大的数据绑定、路由和依赖注入功能。EasyUI则是一个基于jQuery的UI库,为...

    Spring MVC整合shiro

    - 它的设计目标是易于使用,同时也具备扩展性,能够与各种应用框架集成,如Spring MVC。 2. **Spring MVC 概述** - Spring MVC 是Spring框架的一部分,提供了一种模型-视图-控制器(MVC)架构模式来开发Web应用。...

    玩具购物网站-MVC设计模式

    【玩具购物网站-MVC设计模式】是一个基于三层架构开发的在线购物平台,专注于玩具销售。MVC(Model-View-Controller)设计模式是该系统的核心架构,它将应用程序分为三个主要部分,即模型(Model)、视图(View)和...

    实验室设备管理系统 asp.net MVC

    在安全性方面,asp.net MVC提供身份验证和授权机制,确保只有经过身份验证的用户才能访问系统,并且可以根据角色分配不同的权限。实验室设备管理系统可以根据用户角色(如管理员、教师、学生)设定不同级别的操作...

    基于JSP论坛系统毕业设计论文 基于J2EE财务管理系统毕业设计论文 基于J2EE个人博客系统毕业设计论文

    - 安全性:包括SSL/TLS加密,角色基础的访问控制。 - 部署和容器:如Tomcat或WebLogic,管理应用生命周期和服务。 3. **基于J2EE的个人博客系统** 个人博客系统通常包含文章发布、评论、分类等功能。关键技术...

    基于hibernate,spring,spring mvc,bootstrap框架开发的管理系统

    《基于Hibernate,Spring,Spring MVC,...这样的组合不仅提高了开发效率,也使得系统具备更好的可扩展性和可维护性。在实际项目中,开发者可以根据具体需求灵活调整这些框架的使用方式,以达到最佳的开发效果。

    基于JAVA框架设计模式的学生交互系统设计-2019年教育文档.pdf

    综上所述,基于Java框架设计模式的学生交互系统设计充分体现了设计模式在软件开发中的价值,通过合理的模式选择和应用,使得系统具备更好的可扩展性、可维护性和用户体验,适应了现代教育环境中对于交互性、灵活性和...

    spring mvc、 easyui、 mybatis 开发网站后台管理系统源代码下载

    2. EasyUI:EasyUI是一个基于jQuery的UI库,专门针对中国开发者设计,提供了大量的预制组件,如表格、下拉菜单、按钮、对话框等,使开发者能快速构建出美观、响应式的用户界面。EasyUI遵循W3C标准,支持HTML5,并且...

    基于Java web的竞赛报名系统JavaWeb设计

    该系统应具备赛事查询、报名登记、信息验证等功能,同时保证数据的安全性和准确性。 功能要求: 1. **赛事查询**:用户可以通过系统查询当前可用的竞赛信息,包括竞赛名称、时间、地点、题目等。 2. **报名功能**:...

    MVC模式在Flex框架的应用研究.pdf

    本文将探讨MVC(Model-View-Controller)设计模式在Flex框架中的应用,并通过具体案例阐述如何快速开发基于MVC模式的Flex应用程序。 #### 二、Flex框架概述 Flex是Adobe推出的一种面向企业级富互联网应用的表示层...

    基于Visual Basic的运输管理系统设计与代码实现

    基于Visual Basic,我们可以采用模型-视图-控制器(MVC)架构,将业务逻辑、用户界面和数据访问分离,提高代码的可维护性和复用性。模型层负责数据处理和业务逻辑,视图层展示用户界面,控制器则作为模型和视图之间...

    基于ASP.NET的多功能博客blog系统的设计与实现

    总之,基于ASP.NET的多功能博客系统是一个涵盖了Web开发多个领域的综合性项目,涉及了后端逻辑处理、数据库设计、前端展示、用户交互等多个方面,是学习和实践ASP.NET技术的绝佳实例。通过深入理解并实现这样的系统...

    mvc自定义框架的代码

    自定义框架的灵活性和可扩展性使其成为解决复杂问题的强大工具,但同时也需要开发者具备深厚的软件设计和架构能力。在实践中,不断优化和完善框架,使之更符合项目需求,是提升开发效率的关键。

    基于JAVA的简单的文件内容分加密解密(窗口化设计)

    8. **代码结构和设计模式**:遵循良好的编程实践,如使用MVC(模型-视图-控制器)设计模式,可以提高代码的可维护性和扩展性。在这个项目中,模型负责处理数据,视图展示界面,而控制器处理用户交互。 9. **安全性...

Global site tag (gtag.js) - Google Analytics