首页 > 其他分享 >记录--新的HTML标签 :<search>

记录--新的HTML标签 :<search>

时间:2023-06-21 16:14:10浏览次数:40  
标签:ARIA -- 标签 元素 语义 HTML 搜索

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助

本文介绍了一种新的HTML元素搜索方法,并提供了一个实用的工具来帮助开发者快速找到所需的元素。这对于那些需要处理大量HTML元素的开发者来说是非常有用的。文章还通过提供一些常见元素的用法示例,帮助开发者更好地理解和应用这些元素。在众多元素中找到特定的元素。为了解决这个问题,文章介绍了一种新的HTML元素搜索方法。

下面是正文

一个新的语义元素已经加入了 HTML 标准 。它代表文档中用于搜索或过滤的部分。它应该包含表单控件(如文本输入、下拉菜单、按钮等),搜索/过滤的范围可以是任何内容:从同一文档到整个互联网。

如何运作

<search> 元素之前,我们可以在 <form> 标签中添加 role="search" 以指示该表单用于搜索:

<form role="search" method="get" action="/search">
  <input type="search" name="search-text" />
  <button>Search</button>
</form>

有了这个新添加的功能,我们可以使用 <search> 标签来包装表单:

由于 <search> 是标准中的新内容,所有浏览器、屏幕阅读器和其他工具可能需要一段时间才能跟上。在此期间,我们可以使用一个 hack,指定它已经具有的 ARIA 角色(类似于 <nav> 所发生的情况)。这在未来可能会变得多余,但它可能会为我们的代码做好准备,以便在浏览器支持新标签时使用。

<search role="search">
   ...
</search>

这看起来有些违反直觉:我们正在移除 role="search" ,但我们正在用<search>包装所有内容。总体而言,这是更多的文本/代码(仅三个字符)和更多的嵌套(一个更高的级别)。

温馨提示:尽管我们在构建搜索组件时并不强制需要

标签,但是使用它却能带来额外的好处(甚至是必须的)。这样,即使在无JavaScript环境下,搜索功能也能保持正常运行,或者说,这是一种实践渐进式增强策略的方式。

另一个需要注意的关键点是,搜索区域不一定是网站或在线平台上带有搜索按钮的文本输入框。我们可以使用 <search> 来过滤结果或表格行。它的实用性不仅限于文本输入和搜索框:

<search>
  <h2>Filter results</h2>

  <form>
    <label for="cartype">Car type</label>
    <select id="cartype">
      <option value="coupe">Coupe</option>
      <option value="sedan">Sedan</option>
    </select>

    <label for="electric">Electric?</label>
    <input type="checkbox" id="electric" />
  </form>
</search>

看法

拥有一个用于识别搜索区域的元素是很好的。正如Scott O'Hara在这篇文章中指出的那样,直到现在,这是唯一一个在HTML中没有语义等效项的ARIA地标角色:

  • banner → <header>
  • complementary → <aside>
  • form → <form>
  • main → <main>
  • navigation → <nav>
  • region → <section>
  • search → ???

使用 <search> 来标识应具有“搜索”角色的部分,我们将使用一些语义化的 HTML 元素覆盖所有 ARIA 地标角色。这很棒:它将提高可访问性(尽管如上所述,需要一段时间才能让所有浏览器跟上),并扩展了语言的语义。

但是,从程序员的角度来看,它感觉不够完善或没有为现有的实现增加太多东西。其他语义元素可以提高可访问性并简化我们编写特定组件的方式。例如,像 <tabpanel> <tab> 这样的东西,在我看来会更具说服力和价值。

这并不会削弱它的重要性。所有的改进 - 即使是微小的改进 - 都是受欢迎的。这也适用于 <search> 。这是 HTML 家族的一个极好的新成员。

代码部署后可能存在的BUG没法实时知道,事后为了解决这些BUG,花了大量的时间进行log 调试,这边顺便给大家推荐一个好用的BUG监控工具 Fundebug

本文转载于:

https://juejin.cn/post/7236372620999868477

如果对您有所帮助,欢迎您点个关注,我会定时更新技术文档,大家一起讨论学习,一起进步。

 

标签:ARIA,--,标签,元素,语义,HTML,搜索
From: https://www.cnblogs.com/smileZAZ/p/17496494.html

相关文章

  • MUR8060PT-ASEMI快恢复二极管MUR8060PT
    编辑-ZMUR8060PT在TO-247封装里采用的2个芯片,其尺寸都是140MIL,是一款高耐压大电流快恢复二极管。MUR8060PT的浪涌电流Ifsm为600A,漏电流(Ir)为10uA,其工作时耐温度范围为-55~150摄氏度。MUR8060PT采用抗冲击硅芯片材质,里面有2颗芯片组成。MUR8060PT的电性参数是:正向电流(Io)为80A,反......
  • Feign的最佳实践
    Feign的最佳实践方式一(继承):给消费者的FeignClient和提供者的controller定义统一的父接口作为标准。orderservice中的UserClient和userservice的Controller中的queryById基本相同,因此可以定义父接口作为统一标准  但是Feign官方不推荐提供者和消费者共用接口,会造成紧耦合。......
  • EDF存储说明
     EDF文件的结构:EDF文件包括【文件头信息】和【数据存储区域】,其中,【文件头信息】又分为两部分,【文件头前半部分】和【文件头后半部分】。EDF头文件信息全部使用ascll表示,头文件中每个功能参数描述均使用固定存储长度,相关信息在存储的时候需要左对齐,剩余未使用的空间使用‘’(字......
  • kubernetes Headless Services
    HeadlessServices介绍有时不需要或不想要负载均衡,以及单独的ServiceIP。遇到这种情况,可以通过显式指定ClusterIP(spec.clusterIP)的值为"None"来创建HeadlessService。你可以使用一个HeadlessService与其他服务发现机制进行接口,而不必与Kubernetes的实现捆绑在一起......
  • 会导致内存泄漏的原因
    一、意外的全局变量由于使用了未声明的变量,以外的创建了一个全局变量,此变量一直留在内存中无法被回收二、被遗忘的计时器或者回调函数设置了setInterval定时器,忘记取消。若循环函数又对外部变量的引用,此变量会一直留在内存,无法回收三、脱离DOM的引用获取了一个DO......
  • 使用py脚本造测试数据
    代码sql="""insertinto'user'('id','username''password','nick_name','user_photo','user_sex','account_balance')values"""forindexinrange(0......
  • Oracle 19c新特性介绍(仅包含RAC、DG和备份)
    本文参考:OracleDatabaseDatabaseNewFeaturesGuide,19c,目前版本为2023年03月。摘抄RAC、DG和备份这三块的新特性介绍。1RAC新特性1.1Grid零停机补丁升级1.1.1切换Grid主目录原文摘抄:Usethe-switchGridHomeoptiontoswitchfromthesourceOracleGridInfrastruct......
  • UVA12222 Mountain Road 山路 题解 dp
    UVA12222山路题意:--一个山路只有一条车道,因此不能有两辆方向相反的车同时在车道内。同时,为了保证安全,车道内不能超车,且同向行驶的车间距必须大于10分钟。现在给你n辆车,三个参数依次表示行驶方向,到达时刻,行驶时间。问如何安排能使最后一个通过的车通过时的时刻最小,输出这个值......
  • 搜索引擎的搜索方法
    site:www.bing.com搜索指定的网站搜索指定的文件类型例如:防火墙使用手册filetype:ppt......
  • [C#] winform窗体分布类实现
     为Form1窗体添加一个partial属性的分布类,需要以下几步:1.使用VisualStudio创建你的新工程,包含窗体Form12.创建一个新文件,命名成这样的格式:Form1.Behind.cs3.新class编辑为partial属性5.保存全部并关闭VisualStudio6.使用记事本打开[.csproj]文件7.寻找以下字段:[cod......