如何为SharePoint自动生成的功能区图片添加缺失的alt属性?
针对你遇到的SharePoint自动生成的spcommon.png图片缺失alt属性、无法直接修改母版页、JS方案不被审计工具认可的问题,以下是几个无需依赖JavaScript的解决思路:
服务器端HttpModule拦截修改HTML输出
利用本地部署的优势,编写自定义的.NET HttpModule,在服务器向客户端输出HTML前拦截响应内容,定位到目标<img src="/_layouts/15/images/spcommon.png?rev=40" />标签,自动添加合适的alt属性(例如alt="SharePoint通用功能图标")。修改后的HTML直接输出给客户端,审计工具抓取的源码会包含完整的alt属性,完全规避JS依赖问题。
实现步骤:创建实现IHttpModule接口的类,在EndRequest事件中处理响应流的文本替换,最后在SharePoint服务器的web.config中注册该Module。CSS视觉替换方案(需结合审计规则判断)
通过CSS将原img元素隐藏(如设置position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden;),然后在该img的父元素上使用background-image加载spcommon.png,并设置与原图片匹配的宽高。这种方式能保证视觉效果不变,若审计工具仅检测可见元素的可访问性,可能会忽略被隐藏的原img标签。但需注意,部分严格的审计工具仍会检测到隐藏元素的alt缺失,需提前验证。修改SharePoint内置母版页模板(风险较高)
本地部署的SharePoint服务器中,经典版母版页的基础模板文件存储在C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\TEMPLATE\GLOBAL目录下。可以找到生成该img标签的代码位置,手动添加alt属性。
注意:此修改会影响所有使用该模板的站点,且SharePoint官方更新可能覆盖修改内容,操作前务必做好文件备份,并在后续更新后重新校验修改。
内容的提问来源于stack exchange,提问作者user1856811

