0

我们有一个可访问性要求,为屏幕阅读器呈现带有额外“屏幕外”文本的某些命令链接。所以我们希望最终呈现类似的东西(为了清楚起见,省略了属性)

<a>Edit Details<span class="hiddenOffScreen"> for John Smith</span></a>

问题是标准的 jsf1.2<h:commandLink>标签不尊重该escape属性。我尝试了类似<h:commandLink escape="false" value="#{linkText}"/>linkText 计算上面显示的 a 标签的内容的方法,但这会按字面意思呈现 span 标签(即转义 < 和 >)

如何最好地满足这一要求?我当然可以稍后使用 JQuery 轻松添加跨度,但是,为了我自己的教育,我想尝试使用自定义渲染器 - 但不确定如何使用添加“onClick”事件的现有默认渲染器处理程序和相关的 javascript。在搜索自定义 commandLink 渲染器时,我的 google-foo 似乎让我失望了。

请记住,这是 JSF 1.2,我们不能使用任何第三方标记库,因为我们在 WebSphere Portal Server 的非常老的版本上运行。

4

2 回答 2

2

您可以在标签内嵌套内容,包括其他标签和/或隐式文本,<h:commandLink>而不是在其属性中指定文本value,以实现您的功能:

<h:commandLink ...>
    <h:outputText .../>
    <span class="hidden"></span>
    #{bean.someText}
</h:commandLink>

这将完全呈现你想要的。

于 2013-04-30T15:22:02.113 回答
0

使用 < 或 > 写 < >

于 2013-04-30T15:19:54.437 回答