有一个模态代码。来自Twitter引导的js:
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">Modal title</h4>
</div>
<div class="modal-body">
...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
什么是role=“dialog”aria labelledby=“myModalLabel”aria hidden=“true”?
它到底做什么?
先决条件:
Aria用于改善视障用户的用户体验。视障用户使用屏幕阅读器软件(如JAWS、NVDA、...)在应用程序中导航时,屏幕阅读器软件会向用户宣布内容。Aria可用于在代码中添加内容,帮助屏幕阅读器用户了解控件的角色、状态、标签和目的
Aria在视觉上没有任何改变。(Aria也害怕设计师)。
角色
角色属性用于向屏幕阅读器用户传达元素的类型。
role=“button”向屏幕阅读器用户传达它是一个按钮。
角色="dialog"向屏幕阅读器用户传达它是一个模态对话框。
有关角色的详细信息https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles
咏叹调标签
aria-tag和aria-labelledby都用于传达标签。但是aria-labelledby可以用来引用页面中已经存在的任何标签,而aria-tag用于传达不直观显示的标签
例如:
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<h4 class="modal-title" id="myModalLabel">Modal title</h4>
当模态对话框收到焦点时,会向屏幕阅读器用户宣布“模态标题”。aria labelledby的值与
Aria-隐藏:
ARI-隐藏属性用于隐藏使用屏幕阅读器(JAWS、NVDA、...)浏览应用程序的视障用户的内容。
aria hidden属性与值true、false一起使用。
例如:
<i class = "fa fa-books" aria-hidden = "true"></i>
在
上使用aria-隐藏="true"
ARIA代表可访问的富Internet应用程序http://www.w3.org/TR/wai-aria/
ARIA或可访问的富Internet应用程序是添加到超文本标记语言中的属性,以帮助屏幕阅读器理解页面的上下文。
在这种情况下,aria-labelledby="myModalLabel"
告诉屏幕阅读器当前元素的标签是id为myModalLabel
的元素。当专注于模态并查找有关其用途的描述时,它将查找#myModalLabel
元素。
角色对话框表示元素的特定角色。按MDN
对话框通常使用覆盖放置在页面其余内容的顶部。
aria-隐藏="true"
向屏幕阅读器指示
该元素及其所有子元素对于作者实现的任何用户都是不可见或不可感知的。
如果您根据用户与应用程序的交互方式显示和隐藏内容,这样您就可以通知屏幕阅读器某个部分不再相关,这将非常有用。
我们现在开始准备编写AngularJS应用——phonecat。这一步骤(步骤0),您将会熟悉重要的源代码文件,学习启动包含AngularJS种子项目的开发环境,并在浏览器端运行应用。 进入angular-phonecat目录,运行如下命令: git checkout -f step-0 该命令将重置phonecat项目的工作目录,建议您在每一学习步骤运行此命令,将命令中的数字改成您学习步骤对应的
概览 这一节解释了AngularJS初始化的过程,以及需要的时候你该如何修改AngularJS的初始化。 AngularJS的 <script> 标签 这个示例展示了我们推荐的整合AngularJS的方法,它被称之为“自动初始化”。 <!doctype html> <html xmlns:ng="http://angularjs.org" ng-app> <body> ..
本文向大家介绍引导程序navbar-static-top类,包括了引导程序navbar-static-top类的使用技巧和注意事项,需要的朋友参考一下 要创建随页面滚动的导航栏,请添加.navbar-static-top类。此类不需要将填充添加到<body>。 示例
阅读C 11标准,我无法完全理解以下陈述的含义。榜样是非常受欢迎的。 两组类型用于确定偏序。对于涉及的每个模板,都有原始函数类型和转换后的函数类型。[注:转换类型的创建在14.5.6.2.-结束注]演绎过程使用转换类型作为参数模板,另一个模板的原始类型作为参数模板。对于偏序比较中涉及的每种类型,此过程执行两次:一次使用转换后的模板-1作为参数模板,模板-2作为参数模板,再次使用转换后的模板-2作为
问题内容: 我在页面上有以下布局: 但是在较小的屏幕尺寸上,我需要以下布局: (请注意列顺序的重新安排。)是否可以仅在较小的屏幕尺寸上推/拉列?我已经尝试了以下方法,但是我得到的布局最奇怪,并且似乎完全丢失了…: 问题答案: 我自己回答,只需思考:移动优先! 按照我想要在平板电脑上的顺序获取它们,然后将它们推入/拉入到桌面上。
问题内容: 我在win10-64上重新安装了Python37-32,似乎满足了所有要求,并且我的hello world python文件正在执行 但是当我尝试使用pyinstaller时 它以错误结束 这是Windows上的基本安装,我不必手动重新编译任何引导加载程序(我习惯于使用较旧的python版本进行pyinstaller,并且从未遇到过问题)。我应该在哪里解决这个问题? 编辑 错误显示在p