我想编写一个Java工具来评估现有网站的HTML页面,如果任何图像没有alt属性,该工具将向该图像插入alt =“”。一种方法是使用HTML解析器(如HtmlCleaner)生成DOM,然后在写回HTML之前将alt属性添加到DOM中的图像。
然而,这种方法不会保持原始HTML的完整性,并可能导致一些不可预测的副作用,尤其是。当现有的HTML页面数量庞大且无法保证其格式良好时。
有没有更安全的方法来实现这一点(即应保持原始HTML完整并只添加alt属性)?
答案 0 :(得分:2)
如果没有写一些可怕的regexp或其他字符串操作代码,我不相信还有另一种方法可以做到这一点。
我问为什么你想要这样做?我能想象的唯一原因是通过某种自动验证,但需要alt标签的原因是可用性问题。添加空的alt标签无论如何都无济于事。你只是隐藏了这个问题。
相反,我建议编写一些Javascript,在任何缺少alt标记的图像周围抛出红色边框,并让前端设计人员为每个标记的图像添加有意义的 alt标记。
答案 1 :(得分:1)
向布局添加空的alt标签是没有意义的。我第二个克里斯,因为它首先击败了使用alt标签的目的,我同意David Dorward的评论。
但是,如果这里有一些别有用心的动机,你可以在浏览器中使用javascript(或者最好是jQuery)来实现。客户端的浏览器肯定无法更改原始HTML,并且即使它的格式不完整,也足够聪明地解析它。
使用jQuery,将此脚本放在页面的head部分:
<script language="javscript">
$(function() {
$('img:not([alt])').attr('alt','');
});
</script>
并确保包含jQuery库。
答案 2 :(得分:0)
我过去曾使用Jericho HTML Parser library成功解析HTML。它应该适用于格式不佳的HTML。这会改变原始HTML。