首页 > 其他分享 >#yyds干货盘点#新的HTML标签 :<search>

#yyds干货盘点#新的HTML标签 :<search>

时间:2023-06-13 10:01:25浏览次数:42  
标签:yyds ARIA 标签 元素 语义 干货 HTML 搜索

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

下面是正文

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

如何运作

在 <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> 包装所有内容。总体而言,这是更多的文本/代码(仅三个字符)和更多的嵌套(一个更高的级别)。

温馨提示:尽管我们在构建搜索组件时并不强制需要 <form> 标签,但是使用它却能带来额外的好处(甚至是必须的)。这样,即使在无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>

看法

拥有一个用于识别搜索区域的元素是很好的。直到现在,这是唯一一个在HTML中没有语义等效项的ARIA地标角色:

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

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

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

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

标签:yyds,ARIA,标签,元素,语义,干货,HTML,搜索
From: https://blog.51cto.com/u_11365839/6467267

相关文章

  • html第一天学习
    html标签标题标签:<h1>.....<h6>,特点:文字加粗,独占一行,字号逐渐减小<h1>一般用一次段落标签:<p>换行标签:<br>水平标签:<hr>格式化标签</b>加粗:<strong>倾斜:<em>下划线:<ins>删除线:<del>图片:<imgsrc=""alt=""t......
  • HTML的常用标签
    1、标签的分类1)单标签:只需要单独使用就能完整地表达意思。常见的单标签有:<br>,<hr>,<imgsrc="路径"alt="">,<input>,<meta>,<link>2)双标签:由“始标签”和“尾标签”构成,必须成对使用。其中尾标签比始标签多一个'/'。常见的尾标签有:<html>,<body>,<footer>,<t......
  • Web安全测试—查看网页的HTML源代码
      浏览器中浏览网页,查看网页的源代码,是测试中很简单的,很基本的方法,也是非常值得做的。查看源代码最基本的两项作用:可以帮助你发现最明显的安全问题,可以帮助为将来的测试建立一个比较的基准。也可以帮忙你对比攻击失败前后的源代码,调整你的输入,了解到通过的和没有通过,可以再次......
  • 10个好用的 HTML5 特性
     在本文中,我列出了十个我过去没用过的HTML5功能,但现在发现它们很有用,废话不多说,让我们开始吧。 detais标签<details>标签向用户提供按需查看详细信息的效果。如果需要按需向用户显示内容,简单的做法就是使用此<details>标签。默认情况下,它是收起来的,打开后,它将展开并显示被隐藏的......
  • 6. Vue.js 表单输入绑定 #yyds干货盘点#【yyds干货盘点】
    学习目录:Vue.js简介Vue.js实例与数据绑定Vue.js计算属性和侦听器Vue.js条件渲染和列表渲染Vue.js事件处理Vue.js表单输入绑定Vue.js组件基础Vue.js组件通信Vue.js插槽Vue.js动态组件和异步组件Vue.js自定义指令Vue.js过渡和动画Vue.js混入Vue.js自定义事件和v-model......
  • HTML IDE 开发工具
    一、HBuilderXhttps://hx.dcloud.net.cn二、Brackets是一款使用HTML,CSS,JavaScript创建的开源的针对Web开发的编辑器。实时预览,快速编辑,跨平台,可扩展,开源,让Brackets成为一款非常优秀的编辑器。1.ubuntu安装bracketssudoadd-apt-repositoryppa:webupd8team/bracketssud......
  • Html5游戏开发
    [url]http://v.youku.com/v_show/id_XNDQ0MTE4OTUy.html[/url][url]http://video.baidu.com/v?ct=301989888&rn=20&pn=0&db=0&s=8&word=html5%C9%E4%BB%F7%D3%CE%CF%B7%BF%AA%B7%A2%CA%D3%C6%B5%BD%CC%B3%CC&fr=ala0[/url]......
  • jmeter非gui运行,jtl生成了,但是html报告没有生成
     jmeter非gui运行,jtl生成了,但是html报告没有生成,查看log,内容如下: 22:45:00,913ERRORo.a.j.JMeter:Errorgeneratingdashboard:org.apache.jmeter.report.dashboard.GenerationException:Errorwhileprocessingsamples:Mismatchbetweenexpectednumberofcolumns:17......
  • #yyds干货盘点# LeetCode程序员面试金典:环形链表
    题目:给你一个链表的头节点head,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(索引从0开始)。注意:pos不作为参数进行传递 。仅仅是为了标识链......
  • #yyds干货盘点# LeetCode程序员面试金典:移除链表元素
    1.简述:给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val==val的节点,并返回新的头节点。 示例1:输入:head=[1,2,6,3,4,5,6],val=6输出:[1,2,3,4,5]示例2:输入:head=[],val=1输出:[]示例3:输入:head=[7,7,7,7],val=7输出:[]2.代码实现:class......