提交 eda801fb 编写于 作者: K kohsuke

Improved accessibility for visually handicapped.

git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@13723 71c3de6d-444a-0410-be80-ed276b4c234a
上级 50faa587
......@@ -36,6 +36,7 @@ import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerResponse;
import org.kohsuke.stapler.export.Exported;
import org.kohsuke.stapler.export.ExportedBean;
import sun.misc.resources.Messages;
/**
* Represents the running state of a remote computer that holds {@link Executor}s.
......@@ -254,6 +255,13 @@ public abstract class Computer extends AbstractModelObject implements AccessCont
return "computer.gif";
}
public String getIconAltText() {
if(isOffline())
return "[offline]";
else
return "[online]";
}
@Exported
public String getDisplayName() {
return nodeName;
......
......@@ -5,7 +5,7 @@
<j:choose>
<j:when test="${!it.installed}">
<h1>
<img src="${imagesURL}/48x48/installer.gif" />
<img src="${imagesURL}/48x48/installer.gif" alt=""/>
${%Install as Windows Service}
</h1>
......@@ -26,7 +26,7 @@
<!-- already installed -->
<j:otherwise>
<h1>
<img src="${imagesURL}/48x48/blue.gif" />
<img src="${imagesURL}/48x48/blue.gif" alt=""/>
${%Installation Complete}
</h1>
......
......@@ -7,7 +7,7 @@
<j:set var="b" value="${p.run}" />
<a href="${p.combination}" tooltip="${p.tooltip}">
<img src="${imagesURL}/24x24/${h.ifThenElse(b!=null,b.buildStatusUrl,'grey.gif')}"
title="${b.iconColor.description}"/>
title="${b.iconColor.description}" alt="${b.iconColor.description}"/>
<j:if test="${empty(o.x) and empty(o.y)}">
${p.combination.toString(o.z)}
</j:if>
......
......@@ -5,7 +5,7 @@
<l:ajax>
<p:matrix autoRefresh="true">
<a href="${p.shortUrl}">
<img src="${imagesURL}/24x24/${p.buildStatusUrl}" title="${p.iconColor.description}"/>
<img src="${imagesURL}/24x24/${p.buildStatusUrl}" title="${p.iconColor.description}" alt="${p.iconColor.description}"/>
<j:if test="${empty(o.x) and empty(o.y)}">
${p.combination.toString(o.z)}
</j:if>
......
......@@ -32,7 +32,7 @@
<tr>
<td>
<a href="${m.getPluginLink(cache)}">
<img src="${imagesURL}/24x24/gear.gif"/>
<img src="${imagesURL}/24x24/gear.gif" alt=""/>
${m.groupId}:${m.artifactId}
</a>
</td>
......
......@@ -18,7 +18,7 @@
</a>
</j:when>
<j:otherwise><!-- module build non-existent, so no link -->
<img src="${imagesURL}/16x16/grey.gif" />
<img src="${imagesURL}/16x16/grey.gif" alt=""/>
<st:nbsp/>
${m.displayName} (didn't run)
</j:otherwise>
......
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form" xmlns:test="/lib/test">
<j:if test="${it.hasBadge()}">
<a href="${link}redeploy/">
<img width="16" height="16"
<img width="16" height="16" alt="[deployed]"
tooltip="${%Deployed to repository}"
src="${imagesURL}/16x16/redo.gif"/>
</a>
......
......@@ -6,7 +6,7 @@
</l:side-panel>
<l:main-panel>
<h1>
<img src="${imagesURL}/48x48/redo.gif" width="48" height="48" />
<img src="${imagesURL}/48x48/redo.gif" width="48" height="48" alt="" />
${%Redeploy Artifacts}
</h1>
......
......@@ -14,7 +14,7 @@
<!-- Show raw link directly so user need not click through live console page. -->
<div class="task">
<a href="${buildUrl.baseUrl}/console">
<img width="24" height="24" style="margin: 2px;" src="${imagesURL}/24x24/terminal.gif"/>
<img width="24" height="24" style="margin: 2px;" src="${imagesURL}/24x24/terminal.gif" alt=""/>
</a>
<st:nbsp />
<a href="${buildUrl.baseUrl}/console">${%Console Output}</a>
......
......@@ -3,7 +3,7 @@
<l:layout>
<st:include page="sidepanel.jelly" />
<l:main-panel>
<h1><img src="${imagesURL}/48x48/error.gif"/>${%Error: no workspace}</h1>
<h1><img src="${imagesURL}/48x48/error.gif" alt=""/>${%Error: no workspace}</h1>
<j:choose>
<j:when test="${it.lastBuild==null}">
<p>
......
......@@ -3,7 +3,7 @@
<l:layout>
<st:include page="sidepanel.jelly" />
<l:main-panel>
<h1><img src="${imagesURL}/48x48/folder-delete.gif"/> ${%title}</h1>
<h1><img src="${imagesURL}/48x48/folder-delete.gif" alt=""/> ${%title}</h1>
<form id="confirmation" method="post" action="doWipeOutWorkspace">
<f:submit value="${%Yes}" />
</form>
......
......@@ -3,7 +3,7 @@
<st:include page="sidepanel.jelly" />
<l:main-panel>
<h1>
<img src="${imagesURL}/48x48/notepad.gif" />
<img src="${imagesURL}/48x48/notepad.gif" alt=""/>
${%title(it.displayName)}
</h1>
<t:buildListTable builds="${it.builds}"/>
......
......@@ -17,7 +17,7 @@
</l:isAdmin>
<h1>
<img src="${imagesURL}/48x48/${it.icon}" width="48" height="48" />
<img src="${imagesURL}/48x48/${it.icon}" width="48" height="48" alt=""/>
${it.caption} <span style="font-size:smaller">(${it.node.nodeDescription})</span>
</h1>
......
......@@ -26,7 +26,7 @@
<j:forEach var="c" items="${it._all}">
<tr>
<td width="32" data="${c.icon}">
<img src="${imagesURL}/32x32/${c.icon}" width="32" height="32" />
<img src="${imagesURL}/32x32/${c.icon}" width="32" height="32" alt="${c.iconAltText}"/>
</td>
<td><a href="${rootURL}/${c.url}">${c.displayName}</a></td>
<j:forEach var="m" items="${monitors}">
......
......@@ -7,13 +7,13 @@
<!-- parent path -->
<div class="parentPath">
<form action="${backPath}" method="get">
<a href="${topPath}"><img src="${imagesURL}/48x48/${icon}" class="rootIcon" /></a>
<a href="${topPath}"><img src="${imagesURL}/48x48/${icon}" class="rootIcon" alt=""/></a>
<j:forEach var="p" items="${parentPath}">
<a href="${p.href}">${p.title}</a>
/
</j:forEach>
<input type="text" name="pattern" value="${pattern}" />
<img src="${imagesURL}/16x16/go-next.gif" style="vertical-align:middle; cursor:pointer"
<img src="${imagesURL}/16x16/go-next.gif" style="vertical-align:middle; cursor:pointer" alt="[submit]"
onclick="this.parentNode.submit()"/>
</form>
</div>
......@@ -27,7 +27,7 @@
<j:set var="x" value="${f.get(f.size()-1)}"/>
<tr>
<td>
<img src="${imagesURL}/16x16/${x.iconName}"/>
<img src="${imagesURL}/16x16/${x.iconName}" alt=""/>
</td>
<td>
<j:forEach var="t" items="${f}" varStatus="st">
......
......@@ -10,13 +10,13 @@
<j:choose>
<j:when test="${it.alive}">
<h1>
<img src="${imagesURL}/48x48/blue.gif" width="48" height="48" />
<img src="${imagesURL}/48x48/blue.gif" width="48" height="48" alt=""/>
Thread is still alive
</h1>
</j:when>
<j:otherwise>
<h1>
<img src="${imagesURL}/48x48/red.gif" width="48" height="48" />
<img src="${imagesURL}/48x48/red.gif" width="48" height="48" alt=""/>
Thread has died
</h1>
<pre>${h.printThrowable(it.causeOfDeath)}</pre>
......
......@@ -10,7 +10,7 @@
</l:side-panel>
<l:main-panel>
<h1>
<img src="${imagesURL}/48x48/fingerprint.gif" />
<img src="${imagesURL}/48x48/fingerprint.gif" alt=""/>
${it.fileName}
</h1>
<div class="md5sum">
......
......@@ -6,7 +6,7 @@
<st:include page="sidepanel.jelly" />
<l:main-panel>
<h1>
<img src="${imagesURL}/48x48/fingerprint.gif" />
<img src="${imagesURL}/48x48/fingerprint.gif" alt=""/>
${%Check File Fingerprint}
</h1>
<f:form method="post" action="doFingerprintCheck" enctype="multipart/form-data">
......
......@@ -5,56 +5,56 @@
<l:main-panel>
<table cellpadding="5">
<tr><td>
<img src="images/48x48/grey.gif" />
<img src="images/48x48/grey.gif" alt=""/>
${%grey}
</td></tr>
<tr><td>
<img src="images/48x48/grey_anime.gif"/>
<img src="images/48x48/grey_anime.gif" alt=""/>
${%grey_anime}
</td></tr>
<tr><td>
<img src="images/48x48/blue.gif"/>
<img src="images/48x48/blue.gif" alt=""/>
${%blue}
</td></tr>
<tr><td>
<img src="images/48x48/blue_anime.gif"/>
<img src="images/48x48/blue_anime.gif" alt=""/>
${%blue_anime}
</td></tr>
<tr><td>
<img src="images/48x48/yellow.gif"/>
<img src="images/48x48/yellow.gif" alt=""/>
${%yellow}
</td></tr>
<tr><td>
<img src="images/48x48/yellow_anime.gif"/>
<img src="images/48x48/yellow_anime.gif" alt=""/>
${%yellow_anime}
</td></tr>
<tr><td>
<img src="images/48x48/red.gif"/>
<img src="images/48x48/red.gif" alt=""/>
${%red}
</td></tr>
<tr><td>
<img src="images/48x48/red_anime.gif"/>
<img src="images/48x48/red_anime.gif" alt=""/>
${%red_anime}
</td></tr>
<tr><td>
<img src="images/48x48/health-80plus.gif" />
<img src="images/48x48/health-80plus.gif" alt=""/>
${%health-80plus}
</td></tr>
<tr><td>
<img src="images/48x48/health-60to79.gif" />
<img src="images/48x48/health-60to79.gif" alt=""/>
${%health-60to79}
</td></tr>
<tr><td>
<img src="images/48x48/health-40to59.gif" />
<img src="images/48x48/health-40to59.gif" alt=""/>
${%health-40to59}
</td></tr>
<tr><td>
<img src="images/48x48/health-20to39.gif" />
<img src="images/48x48/health-20to39.gif" alt=""/>
${%health-20to39}
</td></tr>
<tr><td>
<img src="images/48x48/health-00to19.gif" />
<img src="images/48x48/health-00to19.gif" alt=""/>
${%health-00to19}
</td></tr>
</table>
......
......@@ -5,7 +5,7 @@
<l:layout title="Log" permission="${app.ADMINISTER}">
<st:include page="sidepanel.jelly" />
<l:main-panel>
<h1><img src="images/48x48/clipboard.gif" />${%Hudson Log}</h1>
<h1><img src="images/48x48/clipboard.gif" alt=""/>${%Hudson Log}</h1>
<j:forEach var="log" items="${h.logRecords}">
<pre>${h.printLogRecord(log)}</pre>
</j:forEach>
......@@ -13,7 +13,7 @@
<h2>
${%Logger Configuration}
<a href="http://hudson.gotdns.com/wiki/display/HUDSON/Logger+Configuration">
<img src="${imagesURL}/16x16/help.gif" />
<img src="${imagesURL}/16x16/help.gif" alt="[help]"/>
</a>
</h2>
<form action="configLogger" method="post">
......@@ -37,7 +37,7 @@
<!-- TODO: put this in the <head> tag. -->
<div align="right" style="margin:1em">
<img src="${imagesURL}/atom.gif" border="0"/>
<img src="${imagesURL}/atom.gif" border="0" alt="Feed"/>
<st:nbsp/><st:nbsp/><st:nbsp/><st:nbsp/>
<a href="logRss">${%All}</a>
<st:nbsp/><st:nbsp/><st:nbsp/><st:nbsp/>
......
......@@ -5,7 +5,7 @@
<l:layout norefresh="true">
<st:include page="sidepanel.jelly" />
<l:main-panel>
<h1><img src="${imagesURL}/48x48/search.gif" />${%Project Relationship}</h1>
<h1><img src="${imagesURL}/48x48/search.gif" alt=""/>${%Project Relationship}</h1>
<form action="projectRelationship" method="get">
<table width="100%">
<tr>
......@@ -23,7 +23,7 @@
<tr>
<td colspan="3" style="text-align:right">
<f:submit value="${%Compare}" />
<a href="projectRelationship-help"><img src="${imagesURL}/16x16/help.gif" /></a>
<a href="projectRelationship-help"><img src="${imagesURL}/16x16/help.gif" alt="[help]"/></a>
</td>
</tr>
......
......@@ -6,7 +6,7 @@
<j:choose>
<j:when test="${it.builds.size()&gt;1}">
<div align="center">
<img src="buildTimeGraph" width="500" height="400" lazymap="buildTimeGraphMap"/>
<img src="buildTimeGraph" width="500" height="400" lazymap="buildTimeGraphMap" alt="[Build time graph]"/>
</div>
<j:set var="isMasterSlaveEnabled" value="${!empty(app.slaves)}"/>
......
......@@ -3,7 +3,7 @@
<st:include page="sidepanel.jelly" />
<l:main-panel>
<h1>
<img src="${imagesURL}/48x48/computer.gif" width="48" height="48" />
<img src="${imagesURL}/48x48/computer.gif" width="48" height="48" alt=""/>
${it.name}
</h1>
......@@ -12,7 +12,7 @@
<j:forEach var="n" items="${it.nodes}">
<j:set var="c" value="${app.getComputer(n.nodeName)}"/>
<a href="${rootURL}/computer/${n.nodeName}">
<img src="${imagesURL}/16x16/${c.icon}" width="16" height="16" />
<img src="${imagesURL}/16x16/${c.icon}" width="16" height="16" alt=""/>
${c.displayName}
</a>
<st:nbsp />
......
......@@ -9,7 +9,7 @@
</l:side-panel>
<l:main-panel>
<h1>
<img src="${imagesURL}/48x48/fingerprint.gif"/>
<img src="${imagesURL}/48x48/fingerprint.gif" alt=""/>
${%No matching record found}
</h1>
......
<img width="16" height="16"
title="${it.tooltip}"
title="${it.tooltip}" alt="[saved]"
src="${imagesURL}/16x16/lock.gif"/>
......@@ -18,7 +18,7 @@
<j:when test="${it.isLogUpdated()}">
<pre id="out"></pre>
<div id="spinner">
<img src="${imagesURL}/spinner.gif" />
<img src="${imagesURL}/spinner.gif" alt="" />
</div>
<t:progressiveText href="progressiveLog" idref="out" spinner="spinner" />
</j:when>
......
......@@ -7,7 +7,7 @@
<j:when test="${it.workerThread.alive}">
<pre id="out"></pre>
<div id="spinner">
<img src="${imagesURL}/spinner.gif" />
<img src="${imagesURL}/spinner.gif" alt=""/>
</div>
<t:progressiveText href="progressiveLog" idref="out" spinner="spinner" />
</j:when>
......
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
<div>
<img src="${imagesURL}/24x24/red.gif" /> ${%Failure}
<img src="${imagesURL}/24x24/red.gif" alt=""/> ${%Failure}
</div>
<pre>${it.stackTrace}</pre>
</j:jelly>
\ No newline at end of file
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
<div>
<img src="${imagesURL}/24x24/grey_anime.gif" /> ${%Installing}
<img src="${imagesURL}/24x24/grey_anime.gif" alt=""/> ${%Installing}
</div>
<div style="padding-left: 32px">
<t:progressBar pos="${it.percentage}" />
......
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
<img src="${imagesURL}/24x24/grey.gif" /> ${%Pending}
<img src="${imagesURL}/24x24/grey.gif" alt=""/> ${%Pending}
</j:jelly>
\ No newline at end of file
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
<img src="${imagesURL}/24x24/blue.gif" /> ${%Success}
<img src="${imagesURL}/24x24/blue.gif" alt=""/> ${%Success}
</j:jelly>
\ No newline at end of file
......@@ -3,7 +3,7 @@
<st:include page="sidepanel.jelly" />
<l:main-panel>
<h1>
<img src="${imagesURL}/48x48/user.gif" />
<img src="${imagesURL}/48x48/user.gif" alt="" />
Builds for ${it}
</h1>
<t:buildListTable builds="${it.builds}"/>
......
......@@ -3,7 +3,7 @@
<st:include page="sidepanel.jelly" />
<l:main-panel>
<h1>
<img src="${imagesURL}/48x48/user.gif" />
<img src="${imagesURL}/48x48/user.gif" alt="" />
${it.fullName}
</h1>
<t:editableDescription />
......
......@@ -11,7 +11,7 @@
</tr>
<j:forEach var="p" items="${it.users}">
<tr>
<td><a href="${rootURL}/${p.user.url}"><img src="${imagesURL}/32x32/user.gif"/></a></td>
<td><a href="${rootURL}/${p.user.url}"><img src="${imagesURL}/32x32/user.gif" alt=""/></a></td>
<td><a href="${rootURL}/${p.user.url}">${p.user}</a></td>
<td data="${p.timeSortKey}">${p.lastChangeTimeString}</td>
<td><a href="${rootURL}/${p.project.url}">${p.project.name}</a></td>
......
......@@ -3,7 +3,7 @@
<st:include page="sidepanel.jelly" />
<l:main-panel>
<h1>
<img src="${imagesURL}/48x48/notepad.gif" />
<img src="${imagesURL}/48x48/notepad.gif" alt=""/>
${%buildHistory(it.displayName)}
</h1>
<t:buildListTable builds="${it.builds}"/>
......
......@@ -2,6 +2,7 @@
<a href="${rootURL}/${it.build.url}tagBuild/">
<img width="16" height="16"
tooltip="${it.tooltip}"
alt="[tagged]"
src="${imagesURL}/16x16/save.gif"/>
</a>
</j:if>
......@@ -4,7 +4,7 @@
<l:side-panel />
<l:main-panel>
<h1>
<img src="${imagesURL}/48x48/secure.gif" width="48" height="48" />
<img src="${imagesURL}/48x48/secure.gif" width="48" height="48" alt=""/>
${%Subversion Authentication}
</h1>
<p>
......
......@@ -45,7 +45,7 @@
<td>${%Enter text as shown}:</td>
<td>
<input type="text" name="captcha" autocomplete="off" /><br />
<img src="${rootURL}/securityRealm/captcha"/>
<img src="${rootURL}/securityRealm/captcha" alt="[captcha]"/>
</td>
</tr>
</j:if>
......
......@@ -13,9 +13,9 @@
</tr>
<j:forEach var="user" items="${it.allUsers}">
<tr>
<td><a href="${user.url}"><img src="${imagesURL}/32x32/user.gif"/></a></td>
<td><a href="${user.url}"><img src="${imagesURL}/32x32/user.gif" alt=""/></a></td>
<td><a href="${user.url}">${user}</a></td>
<td><a href="${user.url}/configure"><img src="${imagesURL}/32x32/setting.gif"/></a></td>
<td><a href="${user.url}/configure"><img src="${imagesURL}/32x32/setting.gif" alt="Setting"/></a></td>
</tr>
</j:forEach>
</table>
......
......@@ -5,7 +5,7 @@
<l:isAdmin>
<pre id="out"></pre>
<div id="spinner">
<img src="${imagesURL}/spinner.gif" />
<img src="${imagesURL}/spinner.gif" alt=""/>
</div>
<t:progressiveText href="progressiveLog" idref="out" spinner="spinner" />
</l:isAdmin>
......
......@@ -8,7 +8,7 @@
<st:include it="${it.build}" page="sidepanel.jelly" />
<l:main-panel>
<h1>
<img src="${imagesURL}/48x48/fingerprint.gif" />
<img src="${imagesURL}/48x48/fingerprint.gif" alt=""/>
${%Recorded Fingerprints}
</h1>
<table class="fingerprint-in-build sortable">
......@@ -42,7 +42,7 @@
</td>
<td>
<a href="${rootURL}/fingerprint/${f.hashString}/">
<img src="${imagesURL}/16x16/fingerprint.gif" /> ${%more details}
<img src="${imagesURL}/16x16/fingerprint.gif" alt=""/> ${%more details}
</a>
</td>
</tr>
......
......@@ -12,7 +12,7 @@
${%Test Result Trend}
</div>
<div>
<img src="test/trend${trendQueryString1}" lazymap="test/trendMap${trendQueryString1}"/>
<img src="test/trend${trendQueryString1}" lazymap="test/trendMap${trendQueryString1}" alt="[Test result trend chart]"/>
</div>
<div style="text-align:right">
<a href="test/flipTrend">
......
......@@ -3,7 +3,7 @@
<st:include page="sidepanel.jelly" it="${it.project}" />
<l:main-panel>
<div>
<img src="trend?${request.queryString}" lazymap="trendMap?rel=../&amp;${request.queryString}"/>
<img src="trend?${request.queryString}" lazymap="trendMap?rel=../&amp;${request.queryString}" alt="[Test result trend chart]"/>
</div>
</l:main-panel>
</l:layout>
......
......@@ -17,7 +17,7 @@
function loadAllBuildHistory() {
// first display the "loading..." icon
var box = $("loadAllBuildHistory");
box.innerHTML = '<img src="${imagesURL}/spinner.gif" />';
box.innerHTML = '<img src="${imagesURL}/spinner.gif" alt=""/>';
// then actually fetch the HTML
new Ajax.Request("${it.baseUrl}/buildHistory/all",{
......@@ -49,9 +49,9 @@
-->
<tr class="build-row">
<td colspan="2" align="right">
<a href="${it.baseUrl}/rssAll"><img src="${imagesURL}/atom.gif" border="0"/> ${%for all}</a>
<a href="${it.baseUrl}/rssAll"><img src="${imagesURL}/atom.gif" border="0" alt="Feed"/> ${%for all}</a>
<st:nbsp/>
<a href="${it.baseUrl}/rssFailed"><img src="${imagesURL}/atom.gif" border="0"/> ${%for failures}</a>
<a href="${it.baseUrl}/rssFailed"><img src="${imagesURL}/atom.gif" border="0" alt="Feed"/> ${%for failures}</a>
</td>
</tr>
</l:pane>
......
......@@ -30,7 +30,7 @@
</td>
<j:if test="${help!=null}">
<td>
<a href="#" class="help-button" helpURL="${rootURL}${help}"><img src="${imagesURL}/16x16/help.gif" /></a>
<a href="#" class="help-button" helpURL="${rootURL}${help}"><img src="${imagesURL}/16x16/help.gif" alt="[help]"/></a>
</td>
</j:if>
</tr>
......
......@@ -36,7 +36,7 @@
</td>
<td>
<a href="${rootURL}/${b.url}console">
<img src="${imagesURL}/${subIconSize}/terminal.gif" title="${%Console output}" border="0" />
<img src="${imagesURL}/${subIconSize}/terminal.gif" title="${%Console output}" alt="${%Console output}" border="0" />
</a>
</td>
</tr>
......
......@@ -4,4 +4,4 @@
-->
<img width="16" height="16"
src="${imagesURL}/16x16/document_${type.name}.gif"
title="${type.description}" />
title="${type.description}" alt="${type.description}" />
......@@ -11,7 +11,7 @@
<l:hasPermission permission="${permission}">
<div align="right"><a href="editDescription" onclick="${h.ifThenElse(h.isAutoRefresh(request), null, 'return replaceDescription();')}">
<img src="${imagesURL}/16x16/notepad.gif" />
<img src="${imagesURL}/16x16/notepad.gif" alt="" />
<j:choose>
<j:when test="${empty(it.description)}">
${%add description}
......
......@@ -127,7 +127,8 @@
<td>
<j:if test="${job.buildable and job.hasPermission(job.BUILD)}">
<a href="${jobBaseUrl}${job.shortUrl}build?delay=0sec">
<img src="${imagesURL}/${subIconSize}/clock.gif" title="${%Schedule a build}"
<img src="${imagesURL}/${subIconSize}/clock.gif"
title="${%Schedule a build}" alt="${%Schedule a build}"
border="0"/>
</a>
</j:if>
......
......@@ -2,13 +2,13 @@
<div align="right" style="margin:1em">
<a href="${rootURL}/legend">${%Legend}</a>
<span style="padding-left:1em">
<a href="rssAll"><img src="${imagesURL}/atom.gif" border="0"/> ${%for all}</a>
<a href="rssAll"><img src="${imagesURL}/atom.gif" border="0" alt="Feed"/> ${%for all}</a>
</span>
<span style="padding-left:1em">
<a href="rssFailed"><img src="${imagesURL}/atom.gif" border="0"/> ${%for failures}</a>
<a href="rssFailed"><img src="${imagesURL}/atom.gif" border="0" alt="Feed"/> ${%for failures}</a>
</span>
<span style="padding-left:1em">
<a href="rssLatest"><img src="${imagesURL}/atom.gif" border="0"/> ${%for just latest builds}</a>
<a href="rssLatest"><img src="${imagesURL}/atom.gif" border="0" alt="Feed"/> ${%for just latest builds}</a>
</span>
</div>
</j:jelly>
......@@ -19,7 +19,7 @@ Attributes:
<td>
<a href="${attrs.href}">
<img src="${h.ifThenElse(icon.startsWith('/'), rootURL+icon, imagesURL+'/48x48/'+icon)}"
width="48" height="48" style="margin-right:1em" />
alt="" width="48" height="48" style="margin-right:1em" />
</a>
</td>
<td style="vertical-align:middle">
......
......@@ -101,7 +101,7 @@
<div id="searchform">
<input name="q" value="search" id="search-box" class="has-default-text defaulted" />
<st:nbsp />
<a href="${%searchBox.url}"><img src="${imagesURL}/16x16/help.png" /></a>
<a href="${%searchBox.url}"><img src="${imagesURL}/16x16/help.png" alt="help for search" /></a>
<div id="search-box-completion" />
<script>createSearchBox("${searchURL}");</script>
</div>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册