当用户留空搜索框时…

Avatar of Brin Wilson
Brin Wilson 发布

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 价值 200 美元的免费积分!

以下是由 WinningWP 的 Brin Wilson 撰写的客座文章。Brin 联系了我,希望为他的网站做一些广告。我当然会 很乐意接受,但更重要的是,由于 Brin 本身就是一名科技作家,为什么不写一篇客座文章呢?这始终是一个双赢的局面,而且由于他有一个好主意… Brin,请开始吧!

如果您正在阅读这篇文章,我猜您是一位关心用户体验的人。 就像我一样,我敢打赌您可能花了无数个小时试图完善网站的每一个细节:从确保所有内容在各种不同设备上看起来都应该的样子,到创建有趣或有帮助的 404 页面!但是您是否想过,当人们使用您提供的搜索功能(通常是在页面顶部附近的一个简单的搜索框)搜索您的网站,却不小心按下了 Enter 键,而没有真正输入任何内容时会发生什么?

查看整个网络,似乎没有关于这种特定边缘情况应该发生什么的共识。事实上,即使是绝大多数行业领先的网页设计博客似乎也没有就应该发生什么或不应该发生什么达成一致意见!

一些空搜索的示例

重新加载/重定向到主页

常见的例子包括:Web Designer WallTeam Treehouse 博客

在这些情况下,很可能是 WordPress 主题 1) 使用了默认的 WordPress 搜索,以及 2) 缺少 search.php 模板文件(或者模板与主页基本相同)。因此,默认主页将加载,没有任何搜索过滤器,这意味着没有应用过滤器,您将看到该页面上通常显示的内容。这不太清楚发生了什么。

不做任何事

常见的例子包括:CodropsSitepoint

搜索框什么也不做,或者直接关闭。

没有搜索到任何内容/没有找到任何内容

常见的例子包括这个网站本身,即 CSS-Tricks,以及我自己的网站 WinningWP

出现了一个默认结果,引用了用户搜索的内容(在这种情况下为空),并且没有显示任何结果。这与第一个例子正好相反,因为没有搜索过滤器,所以所有内容都被找到了。但是您也处于一个明确的搜索页面,所以某些操作已经发生。

没有搜索到任何内容/所有内容都被找到了

常见的例子包括 WebDesignerDepotCode Tuts+

将显示最近发布的文章列表。

完全空白

常见的例子包括 Smashing MagazineDesignmodo

将显示一个完全空白的搜索结果列表。

故障

常见的例子包括 TheNextWeb1stWebdesigner

该页面看起来(或显示)已损坏。

更好的结果

那么应该做什么呢?使用属性“required”可以说会在支持此 HTML5 部分的浏览器中大幅提高用户体验。

<input required type="search" name="q" id="q">

从而简单地阻止使用更现代浏览器的用户执行空白搜索(如 Speckboy Design Magazine 上的空搜索框行为所示)。这是一个完整的表单示例

<form id="search-form" action="/search-results/">
  <div>
    <label for="q" id="search-label">
      Search
    </label>
    <input required aria-labelledby="search-label" id="q" type="search" name="q" class="search-field" value="">
    <input type="submit" value="Search" class="screen-reader">
  </div>
</form>
编辑注:我更新了此处搜索表单以使用required,因为它似乎是一个简单/显而易见的改进。

但是不支持的浏览器怎么办?这足够好吗?更重要的是:我们可以做得更好吗?

就我个人而言,我认为这些类型的空搜索框搜索可能最好是通过返回一个结果来为用户提供服务,该结果告诉用户他们已经进行了搜索,但不知何故留空了搜索框。可能以一种幽默的 404 页面风格。尽管如此,我说过,我意识到这可能有点过分,对于某些网站来说可能有点不合适。

也许其中一个最好的用户体验(由 Chris 在看到本文的第一稿后提出)可以通过将用户带到一个设计精良的整页搜索体验来提供:可能还会添加一些建议的热门搜索词。

或者也许空白搜索只是一个边缘情况,不必担心,尤其是在流量相对较低的网站上。

当用户留空搜索框时,还有其他建议返回什么?是否有一种可能性是用户只是不小心点击了搜索,或者对搜索功能的运作方式存在其他假设?您的想法呢?