提问人:cwd 提问时间:6/9/2011 最后编辑:Steven R. Loomiscwd 更新时间:6/10/2011 访问量:418
如果我不提交数据,我应该使用 FORM 元素吗?正确的 (X)HTML 标记
Should I use a FORM element if I'm not submitting data? Proper (X)HTML markup
问:
在我的 Web 应用程序中,我有一个用户配置文件页面。该页面上包含以下元素:
Connect with Twitter Connect with Facebook Timezone Select Language Select
前两件事会弹出一个 OAuth 窗口,允许用户进行连接。最后两件事是用 AJAX 保存的。
当我做页面时,我应该如何做 HTML?我认为所有项目都应该是“ul”元素中的 <li> 元素,而不是每个元素的单独“div”或“p”元素。
但是我应该使用什么容器元素呢?我正在争论只使用“div”和使用没有动作的“form”。
我正在收集一些数据,这是“表单”元素的参数,但实际上不会使用表单 - 不会有提交按钮。所以这就是反对它的论点。
这样做的最佳实践是什么?如果您能提供一些支持文档的链接,那也会有所帮助。
谢谢!
答:
最佳做法是使网站在没有 Javascript 的情况下工作,然后逐步添加 Javascript / AJAX 作为增强功能。
渐进式增强 (Wikipedia)
渐进式增强是一种策略 对于强调 可访问性、语义 HTML 标记、 以及外部样式表和脚本 技术。渐进式增强 在分层中使用 Web 技术 让每个人都能接触到的时尚 的基本内容和功能 网页,使用任何浏览器或 互联网连接,同时 为那些人提供更好的带宽, 更高级的浏览器软件或更多 体验增强版 页。
所以是的,你应该使用 .**form
** 如果您关心渐进式增强。正如此答案的评论中所讨论的,就您而言,您不/不能关心的地方,这并不重要。使用您最喜欢的任何元素。
评论
div
纯粹从可访问性的角度来看,尽管您知道要如何实现这一点,但听起来好像语言选择和时区选择功能要求客户从列表中进行选择。对于这些,我设想了两种小的形式。每个表单都包含一个使用 for 属性的标签标签。这些表单还将具有列表输入标记。最后,他们 会有一个提交按钮。您将为输入标签提供名称属性。您可以将 name 属性的值粘贴到标签标签的 for 属性字符串中。
我设想其他两个项目可能是小形式,只有触发功能的按钮。它们也可以是超链接,但辅助功能方面的最佳实践可能规定它们不是超链接,以防万一有人使用不支持脚本的浏览器,或者出于任何原因,有人关闭了脚本。
评论