如何使 Twitter Bootstrap 工具提示易于访问?

2024-01-29

如您所知,Twitter 引导工具提示无法访问(即屏幕阅读器无法读取它们)。为了实现这一目标,应该做以下事情:

  1. 拨打电话后tooltip()函数中,生成的文本元素(包含工具提示文本的元素)应该添加一个新属性:aria-hidden="true".
  2. 原始元素(第一个tooltip()已被调用)应该添加一个属性:aria-describedby="#<tooltip-id>",其中 tooltip-id 指的是上面刚刚创建的新元素的 id。

由于 Javascript 当前的工作方式是选择带有.tooltip类并应用tooltip()函数,我想知道如何在不修改源代码的情况下做到这一点tooltip()功能。

以下是按钮的代码示例:

<span role="button" rel="tooltip" title="Add Youtube Video" class="fancyPostButton span1" tabindex="0" style="-webkit-user-select: none;padding-top: 10px">
    <div id="fancyPostVideoPicker" class="fancyPostAttachment videoAttachment glyphicons film centerMe">
        <i></i>
    </div>
</span>

从外观上看主要例子 http://getbootstrap.com/javascript/#tooltips-examples在 Bootstrap 文档中,当在本机可聚焦元素上使用时,它们可以通过键盘访问(即向仅使用键盘的用户显示),并且它们使用按钮的文本内容。

因此,如果需要工具提示文本来理解按钮(如您的示例),那么默认的 Bootstrap 示例并不算太糟糕,这就是它们创建可访问性问题时的情况。

所以最主要的是按钮没有内容,所以屏幕阅读器不知道它从什么开始。 (注意:如果标题是本机链接或按钮,某些屏幕阅读器可能会回退到标题,但您不应该依赖它。)

要制作一个显示字体图标的按钮,您需要内容和图标,即两个元素:

 <a href="target.html">    
    <span class="icon-home" aria-hidden="true"></span>
    <span class="alt">Add YouTube Video</span>  
 </a>

然后使用 CSS 将文本隐藏到屏幕外。 ARIA-hidden 意味着字体字符不会被读出。

我还建议实际使用按钮或链接,而不是 span 或 div,因为这样你就不需要使用 javascript 来模拟 onclick 等。在这种情况下,你还有一个内联元素(span)包裹在块元素 (div) 也不是有效的 HTML。

如果您使用上面的技术,屏幕阅读器用户无论如何都会听到该项目的内容,我认为没有其他文本可以读出?

如果您无法在源中添加隐藏文本,您可以循环遍历工具提示元素来动态添加它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使 Twitter Bootstrap 工具提示易于访问? 的相关文章

  • 网站 YouTube 嵌入视频不断播放

    我正在使用 youtube 提供的 iframe 在我的网站上嵌入视频 我还使用了一个 css 弹出窗口 这是我从这个页面学到的http www pat burt com web development how to do a css po
  • 用隐藏单元格补充 colspanned 表格有什么不好吗?

    我一直在表格上开发一些排序和选择功能 我发现在具有跨单元格的表格中定位非常困难 我只是添加了跨区单元格并将其隐藏 它看起来不错 它与我的 js 一起工作 非常适合索引 但我想知道这是否是合法的方法 stuffing display none
  • VBA / HTML / jQuery 选择自动完成 - 在列表中选择

    我正在尝试使用 Excel 中的 VBA 在网站的列表中选择一个值 这不是一个 正常列表 该网站使用 jQuery 选择自动完成 如下所示 example http davidwalsh name demo jquery chosen ph
  • Node js 使用中间件重定向进行过多重定向

    在我的 Node js 应用程序 我使用的是express 4 x 中 我想检查用户是否已登录 如果用户未登录 我想重定向到我的登录页面 然后我在中间件中这样做 服务器 js app use function req res next if
  • Jquery从下拉列表中获取所选值的id

    我有一个下拉列表 可以从数据库获取值 如下所示 get getJobs function jobs seljobs jobs var i 0 jobs forEach function n alert job id n id 32 67 4
  • 动画进度元素值

    我有一个progress元素 该元素如下所示 div class container div div div
  • 即使我可以监视其他方法,也无法监视事件处理程序

    我想使用 Jest Jasmine Enzyme 测试 React 中的事件处理程序 MyComponent js import React from react class MyComponent extends React Compon
  • 检查 touchend 是否在拖动后出现

    我有一些代码可以更改表的类 在手机上 有时表格对于屏幕来说太宽 用户将拖动 滚动来查看内容 但是 当他们触摸并拖动表格时 每次拖动都会触发 touchend 如何测试触摸端是否是触摸拖动的结果 我尝试跟踪dragstart和dragend
  • 是否可以使用 javascript 测试用户的浏览器/操作系统是否支持给定类型的链接?

    是否可以使用 javascript 或其他任何东西 测试用户的操作系统 浏览器是否支持给定的 url 方案 例如 大多数仅使用网络邮件的用户计算机上未设置 mailto 是否有可能以某种方式捕获单击 mailto 链接的尝试并弹出比浏览器错
  • 通过 node-http-proxy 保留基于 cookie 的会话

    我有一个简单的基于 Express 的 Node js Web 服务器 用于开发 JavaScript 应用程序 我将服务器设置为使用 node http proxy 来代理应用程序向在不同域和端口上运行的 Jetty 服务器发出的 API
  • JavaScript 中数组的 HTML 数据列表值

    我有一个简单的程序 它必须从服务器上的文本文件中获取值 然后将数据列表填充为输入文本字段中的选择 为此 我想要采取的第一步是我想知道如何动态地将 JavaScript 数组用作数据列表选项 我的代码是
  • 如果链接包含特定文本,jQuery 将类添加到 href

    我的网站上的列表中有一些动态填充的链接 这些链接链接到文件 是否可以使用 jQuery 查看文件名是否以 pdf 结尾 并在 href 或类似的链接文本以 mp3 结尾时添加一个类 例如 我的列表中有以下链接 文件1 pdf 歌曲1 mp3
  • 如何在 Angular 中从父组件访问子组件?

    I have mat paginator在子组件a中 如下所示 子组件 html
  • 如何使JavaScript函数在Eclipse“大纲视图”中可见?

    我有这样的代码 但如果它在匿名函数中定义 则无法打开函数大纲 类没有问题 我该如何概述something2 请分享一些提示 我可以将所有函数标记为构造函数 但这是无效的方法 start of track event required deb
  • IE11不监听MSFullscreenChange事件

    我正在尝试使用 Bigscreen js 在 IE11 中使用全屏 但 IE11 不监听 MS FullscreenChange 事件 document addEventListener MSFullscreenChange functio
  • 查询为空 Node Js Sequelize

    我正在尝试更新 Node js 应用程序中的数据 我和邮递员测试过 我的开发步骤是 从数据库 MySQL 获取ID为10的数据进行更新 gt gt 未处理的拒绝SequelizeDatabaseError 查询为空 我认识到 我使用了错误的
  • 当用户单击链接时,如何记录 MixPanel 事件?

    当用户单击某种类型的链接时 我试图在 MixPanel 中记录一个事件 我正在使用 JQuery 不引人注意地完成此操作 据我所知 我需要添加一个回调函数 以便在记录事件后将用户带到 URL 这是我正在使用的代码 不幸的是
  • JavaScript onresize 事件多次触发

    我在尝试仅在触发 onresize 事件时运行一次函数时遇到一些麻烦 我已经看过这个问题DOM onresize 事件 https stackoverflow com questions 1500312 javascript onresiz
  • 数据表日期范围过滤器

    如何添加日期范围过滤器 like From To 我开始进行常规搜索和分页等工作 但我不知道如何制作日期范围过滤器 我正在使用数据表 1 10 11 版本 My code var oTable function callFilesTable
  • 用于 C# XNA 的 Javascript(或类似)游戏脚本

    最近我准备用 XNA C 开发另一个游戏 上次我在 XNA C 中开发游戏时 遇到了必须向游戏中添加地图和可自定义数据的问题 每次我想添加新内容或更改游戏角色的某些值或其他内容时 我都必须重建整个游戏或其他内容 这可能需要相当长的时间 有没

随机推荐

  • .h 文件有什么意义?

    我知道 h 文件应该有 类声明 函数原型 和外部变量 对于全局变量 但让它成为一个有什么意义吗 h文件 我尝试重命名我的 h文件到一个 c文件 它仍然有效 We can name our file to be anything but we
  • 为什么我不需要引用“System.dll”来使用“System”命名空间?

    我正在处理指定 不要使用任何外部库 的作业 所以我创建了一个 C 应用程序 我做的第一件事就是默认删除所有 dll 的引用 包括 System dll 但是 我仍然可以将其添加到我的代码中 using System using System
  • PostgreSQL全文搜索和保留字,保留一些单词

    我正在使用 Postgresql 和英语字典进行完整的测试搜索 当我想接收带有一些英语单词的记录时 我得到了真实的结果 And so SELECT id FROM table1 WHERE ts vector1 to tsquery it
  • BlockingCollection(Of T) 的目的是什么

    我试图在 NET 4 上新的并行堆栈的上下文中理解 BlockingCollection 的用途 The MSDN http msdn microsoft com en us library dd267312 VS 100 aspx文档说
  • 迭代器(不是迭代器)上的 Lambda 迭代

    我经常读到在迭代器上调用 Lambda 函数是不可能的 直到现在我也一直抱着这样的信念 然而 阅读 Franco Ponticelli 和 Lee McColl Sylvester 所著的 Professional Haxe 一书 了解如何
  • 如何使用 CoreData 执行计算查询

    我有 T SQL 背景 所以 CoreData 的东西对我来说有点新鲜 我正在制作一个应用程序原型 该应用程序最终将使用 MS SQL 后端 Web 服务进行查询 在我的后端 我的 t sql 查询将是这样的 SELECT SQRT SQU
  • “关闭变量会导致性能稍差”。如何?

    在回答 SO 问题时 我被告知我的解决方案将引入变量闭包 因此它的性能会稍差 所以我的问题是 怎么会出现倒闭呢 它将如何影响性能 这里是question https stackoverflow com questions 24696991
  • 有效管理数据变更

    我有一张名为 Bookings 的表 该表包含表示针对特定服务进行的预订的数据 具有许多变量 不久前 我遇到了当前数据结构的问题 即影响时间 日期或价格的预订的任何更改都会影响其他相关的财务记录 日期的预订列表等 我当时的解决方案是创建一个
  • swift webrtc 修改 CMSampleBuffer 以应用一些滤镜效果

    我想在localVideo中添加一些滤镜效果 所以我修改了CMSampleBuffer 转换为 UIImage 使用VNFaceDetector检测人脸boundingBox 将我的滤镜图像添加到相机图像中 转换回 CMSampleBuff
  • Haskell 中 2 个列表的笛卡尔积

    我希望在 Haskell 中生成 2 个列表的笛卡尔积 但我不知道该怎么做 笛卡尔积给出列表元素的所有组合 xs 1 2 3 ys 4 5 6 cartProd a gt b gt a b cartProd xs ys gt 1 4 1 5
  • 如何快速拍照并保存到应用程序本地

    我正在开发一个应用程序 在当前阶段 当用户拍照时 照片将存储在应用程序本地 IBAction func CameraAction sender UIButton let picker UIImagePickerController pick
  • 重新调整复杂类型对象时,SoapObject Result 返回 anyType{} 作为值

    我正在我的 Android 应用程序中调用 Web 服务 方法是 getGramaNiladhariData 我得到的结果是 SoapObject result SoapObject envelope bodyIn Log d WS Str
  • Excel VBA:我们可以通过名称引用列吗?

    我想通过标题名称引用列 当前列是第四列 标题名称是 首选项 该列由 是 或 否 组成 第 5 列标题是 原因 仅当 偏好 栏为 否 时才填写 我的代码是 Private Sub CommandButton1 Click Dim i As I
  • 限制日期时间选择器中的时间间隔

    我在用着this http www eyecon ro bootstrap datepicker 选择日期和时间 该文档没有提到时间选择器 但它无论如何都可以工作 HTML div class dateTimePicker div
  • SQL 将值更改为大写或小写

    如何使sql select语句中的字段全部大写或小写 Example 从人中选择名字 如何使名字始终返回大写 同样始终返回小写 SELECT UPPER firstname FROM Person SELECT LOWER firstnam
  • 使用 ruby​​ 应用程序时出现remove_entry_secure错误

    我正在尝试使用 docsplit 将 PDF 文件拆分为图像 但我的红宝石安装似乎有问题 我每次都会收到以下错误 usr lib ruby 1 8 fileutils rb 694 in remove entry secure parent
  • 我可以在没有递归和堆栈的情况下对二叉树进行中序遍历吗?

    谁能给我一个在不使用递归和不使用堆栈的情况下按顺序遍历二叉树的解决方案 第二次编辑 我认为这是正确的 除了通常的node left child 和node right child 之外 还需要node isRoot node isLeftC
  • SQL:递归路径

    是否可以在 SQL 中创建 树解析器 我有一张桌子 ID Name Parent 1 a 2 b 1 3 c 1 4 d 3 现在我想要一个返回的 SQL 查询 ID PATH 1 a 2 a b 3 a c 4 a c d 这可以用 SQ
  • 动态设置搜索提示

    有谁知道如何动态设置android搜索对话框提示 T 尝试做类似的事情
  • 如何使 Twitter Bootstrap 工具提示易于访问?

    如您所知 Twitter 引导工具提示无法访问 即屏幕阅读器无法读取它们 为了实现这一目标 应该做以下事情 拨打电话后tooltip 函数中 生成的文本元素 包含工具提示文本的元素 应该添加一个新属性 aria hidden true 原始