allura
修订版 | 2cecf8d5c2fb41818bd895e453c905d0bb826c49 (tree) |
---|---|
时间 | 2011-05-18 01:27:42 |
作者 | Tim Van Steenburgh <tvansteenburgh@geek...> |
Commiter | Tim Van Steenburgh |
[#1239] Added alt attrs to img tags to fix html5 validation errors.
Signed-off-by: Tim Van Steenburgh <tvansteenburgh@geek.net>
@@ -13,7 +13,7 @@ | ||
13 | 13 | <p>SourceForge beta projects come with a number of Tools, which can be configured and adjusted to your needs.</p> |
14 | 14 | |
15 | 15 | <div class="grid-2"> |
16 | - <img src="{{g.forge_static('images/project_default.png')}}"> | |
16 | + <img src="{{g.forge_static('images/project_default.png')}}" alt=""> | |
17 | 17 | </div> |
18 | 18 | <div class="grid-13"> |
19 | 19 | <h3>Project Setup</h3> |
@@ -26,7 +26,7 @@ | ||
26 | 26 | <div style="clear:both"></div> |
27 | 27 | |
28 | 28 | <div class="grid-2"> |
29 | - <img src="{{ g.theme.app_icon_url('Wiki', 48) }}"> | |
29 | + <img src="{{ g.theme.app_icon_url('Wiki', 48) }}" alt=""> | |
30 | 30 | </div> |
31 | 31 | <div class="grid-13"> |
32 | 32 | <h3>Wikis</h3> |
@@ -44,7 +44,7 @@ | ||
44 | 44 | <div style="clear:both"></div> |
45 | 45 | |
46 | 46 | <div class="grid-2"> |
47 | - <img src="{{ g.theme.app_icon_url('Git', 48) }}"> | |
47 | + <img src="{{ g.theme.app_icon_url('Git', 48) }}" alt=""> | |
48 | 48 | </div> |
49 | 49 | <div class="grid-13"> |
50 | 50 | <h3>Code</h3> |
@@ -62,7 +62,7 @@ | ||
62 | 62 | <div style="clear:both"></div> |
63 | 63 | |
64 | 64 | <div class="grid-2"> |
65 | - <img src="{{ g.theme.app_icon_url('Tickets', 48) }}"> | |
65 | + <img src="{{ g.theme.app_icon_url('Tickets', 48) }}" alt=""> | |
66 | 66 | </div> |
67 | 67 | <div class="grid-13"> |
68 | 68 | <h3>Tickets</h3> |
@@ -82,7 +82,7 @@ | ||
82 | 82 | |
83 | 83 | {% if config.get('auth.method', 'local') == 'sfx' %} |
84 | 84 | <div class="grid-2"> |
85 | - <img src="{{ g.theme.app_icon_url('Downloads', 48) }}"> | |
85 | + <img src="{{ g.theme.app_icon_url('Downloads', 48) }}" alt=""> | |
86 | 86 | </div> |
87 | 87 | <div class="grid-13"> |
88 | 88 | <h3>Downloads</h3> |
@@ -101,7 +101,7 @@ | ||
101 | 101 | {% endif %} |
102 | 102 | |
103 | 103 | <div class="grid-2"> |
104 | - <img src="{{ g.theme.app_icon_url('Discussion', 48) }}"> | |
104 | + <img src="{{ g.theme.app_icon_url('Discussion', 48) }}" alt=""> | |
105 | 105 | </div> |
106 | 106 | <div class="grid-13"> |
107 | 107 | <h3>Forums</h3> |
@@ -53,7 +53,7 @@ It should be what you want to see as the project title in search listing."> | ||
53 | 53 | <div class="editable viewing"> |
54 | 54 | {% if c.project.icon %} |
55 | 55 | <div class="viewer" style="overflow: auto"> |
56 | - <img src="{{c.project.url()}}/icon" style="float:left; margin-right: 1em;"> | |
56 | + <img src="{{c.project.url()}}/icon" style="float:left; margin-right: 1em;" alt=""> | |
57 | 57 | <input type="submit" name="delete_icon" value="Delete Icon" style="margin-top: 10px;"> |
58 | 58 | </div> |
59 | 59 | {% else %} |
@@ -14,14 +14,14 @@ | ||
14 | 14 | <span class="tcenter grid-4 installable_tool"> |
15 | 15 | <a class="install_trig" data-tool="{{ tool['name'] }}"> |
16 | 16 | <span class="tool_title">{{ tool['app'].tool_label }}{{' (%s)' % tool.app.status if tool.app.status != 'production' else ''}}</span><br /> |
17 | - <img src="{{ g.theme.app_icon_url(tool['app'], 32) or 'unk.png' }}"> | |
17 | + <img src="{{ g.theme.app_icon_url(tool['app'], 32) or 'unk.png' }}" alt=""> | |
18 | 18 | </a> |
19 | 19 | </span> |
20 | 20 | {% endfor %} |
21 | 21 | <span class="tcenter grid-4 installable_tool"> |
22 | 22 | <a class="install_trig" data-tool=""> |
23 | 23 | <span class="tool_title">Subproject</span><br /> |
24 | - <img src="{{ g.theme.app_icon_url('subproject', 32) }}"> | |
24 | + <img src="{{ g.theme.app_icon_url('subproject', 32) }}" alt=""> | |
25 | 25 | </a> |
26 | 26 | </span> |
27 | 27 | </div> |
@@ -55,7 +55,7 @@ | ||
55 | 55 | <ul class="deck"> |
56 | 56 | <li class="tcenter"> |
57 | 57 | <span class="tool_title">{{ label }}</span><br /> |
58 | - <img src="{{ g.theme.app_icon_url(app, 48) }}"> | |
58 | + <img src="{{ g.theme.app_icon_url(app, 48) }}" alt=""> | |
59 | 59 | </li> |
60 | 60 | {% for link in links %} |
61 | 61 | <li> |
@@ -86,7 +86,7 @@ | ||
86 | 86 | <ul class="deck"> |
87 | 87 | <li class="tcenter"> |
88 | 88 | <span class="tool_name">{{ mount['sub'].name }}</span><br /> |
89 | - <img src="{{ g.theme.app_icon_url('subproject', 48) }}"> | |
89 | + <img src="{{ g.theme.app_icon_url('subproject', 48) }}" alt=""> | |
90 | 90 | </li> |
91 | 91 | <li> |
92 | 92 | <form method="post" action="update_mounts" id="mounts_edit_2-{{loop.index0}}"> |
@@ -18,7 +18,7 @@ | ||
18 | 18 | <tr> |
19 | 19 | <td> |
20 | 20 | {% if award.icon %} |
21 | - <img class="award_icon" src="icon"/> | |
21 | + <img class="award_icon" src="icon" alt=""/> | |
22 | 22 | {% endif %} |
23 | 23 | </td> |
24 | 24 | <td><a href="{{award.longurl()}}">{{award.short}}</a></td> |
@@ -20,7 +20,7 @@ | ||
20 | 20 | <tr> |
21 | 21 | <td> |
22 | 22 | {% if award.icon %} |
23 | - <img class="award_icon" src="{{award.url()}}/icon"/> | |
23 | + <img class="award_icon" src="{{award.url()}}/icon" alt=""/> | |
24 | 24 | {% endif %} |
25 | 25 | </td> |
26 | 26 | <td><a href="{{award.longurl()}}">{{award.short}}</a></td> |
@@ -19,7 +19,7 @@ | ||
19 | 19 | <tr> |
20 | 20 | <td> |
21 | 21 | {% if grant.award.icon %} |
22 | - <img class="award_icon" src="icon"/> | |
22 | + <img class="award_icon" src="icon" alt=""/> | |
23 | 23 | {% endif %} |
24 | 24 | </td> |
25 | 25 | <td><a href="{{grant.award.longurl()}}">{{grant.award.short}}</a></td> |
@@ -31,7 +31,7 @@ | ||
31 | 31 | <tr> |
32 | 32 | <td> |
33 | 33 | <py:if test="award.icon"> |
34 | - <img class="award_icon" src="awards/{{award.url()}}/icon"/> | |
34 | + <img class="award_icon" src="awards/{{award.url()}}/icon" alt=""/> | |
35 | 35 | </py:if> |
36 | 36 | </td> |
37 | 37 | <td><a href="{{award.longurl()}}">{{award.short}}</a></td> |
@@ -27,7 +27,7 @@ | ||
27 | 27 | <label class="grid-4">Icon</label> |
28 | 28 | <div class="grid-14"> |
29 | 29 | {% if neighborhood.icon %} |
30 | - <img src="{{neighborhood.url()}}/icon" style="vertical-align: middle"> | |
30 | + <img src="{{neighborhood.url()}}/icon" style="vertical-align: middle" alt=""/> | |
31 | 31 | {% endif %} |
32 | 32 | {{lib.file_field('icon', '')}} |
33 | 33 | </div> |
@@ -6,8 +6,8 @@ | ||
6 | 6 | <div id="nav_menu_missing" py:if="not neighborhood"/> |
7 | 7 | <py:if test="neighborhood"> |
8 | 8 | <div class="column grid_1"> |
9 | - <img py:if="neighborhood.icon" src="${neighborhood.url()}/icon" class="project_icon"/> | |
10 | - <img py:if="not neighborhood.icon" src="${g.forge_static('images/project_default.png')}" class="project_icon"/> | |
9 | + <img py:if="neighborhood.icon" src="${neighborhood.url()}/icon" class="project_icon" alt=""/> | |
10 | + <img py:if="not neighborhood.icon" src="${g.forge_static('images/project_default.png')}" class="project_icon" alt=""/> | |
11 | 11 | </div> |
12 | 12 | <div class="column grid_9"> |
13 | 13 | <h1> |
@@ -36,7 +36,7 @@ | ||
36 | 36 | </p> |
37 | 37 | {% endif %} |
38 | 38 | |
39 | - {% if blob.has_image_view %}<img src="?format=raw"/>{% endif %} | |
39 | + {% if blob.has_image_view %}<img src="?format=raw" alt=""/>{% endif %} | |
40 | 40 | {% if not blob.has_html_view and not blob.has_image_view and not force_display %} |
41 | 41 | <p>{{h.really_unicode(blob.name)}} is not known to be viewable in your browser. |
42 | 42 | Try to <a href="?force=True">display it</a> anyway or |
@@ -6,7 +6,7 @@ | ||
6 | 6 | |
7 | 7 | {% block nav_menu %} |
8 | 8 | <div class="column grid_1"> |
9 | - <img src="{{g.forge_static('images/project_default.png')}}" class="project_icon"/> | |
9 | + <img src="{{g.forge_static('images/project_default.png')}}" class="project_icon" alt=""/> | |
10 | 10 | </div> |
11 | 11 | <div class="column grid_9"> |
12 | 12 | <h1 class="project_title">Site Admin</h1> |
@@ -2,7 +2,7 @@ | ||
2 | 2 | <hr/> |
3 | 3 | {% if value.is_image() %} |
4 | 4 | <div class="attachment_thumb"> |
5 | - <a href="{{value.url()}}"><img src="{{value.url()}}/thumb"/></a> | |
5 | + <a href="{{value.url()}}"><img src="{{value.url()}}/thumb" alt="Thumbnail"/></a> | |
6 | 6 | <br/> |
7 | 7 | <a href="{{value.url()}}">{{value.filename}}</a> |
8 | 8 | ({{value.length}} bytes) |
@@ -6,7 +6,7 @@ | ||
6 | 6 | {% for att in attachments if att.is_image() %} |
7 | 7 | <div class="attachment_thumb"> |
8 | 8 | <a href="{{att.url()}}"> |
9 | - <img src="{{att.url()}}/thumb"/> | |
9 | + <img src="{{att.url()}}/thumb" alt="Thumbnail"/> | |
10 | 10 | </a><br/> |
11 | 11 | {{att.filename}} |
12 | 12 | {% if edit_mode %} |
@@ -41,7 +41,7 @@ | ||
41 | 41 | {% for att in value.attachments %} |
42 | 42 | <div class="attachment_thumb" style="min-height: 130px;"> |
43 | 43 | {% if att.is_image() %} |
44 | - <a href="{{att.url()}}"><img src="{{att.url()}}/thumb"/></a> | |
44 | + <a href="{{att.url()}}"><img src="{{att.url()}}/thumb" alt="Thumbnail"/></a> | |
45 | 45 | <br/> |
46 | 46 | <a href="{{att.url()}}">{{att.filename}}</a> |
47 | 47 | {% else %} |
@@ -1,6 +1,6 @@ | ||
1 | 1 | {% for ss in project.get_screenshots() %} |
2 | 2 | <div class="grid-6" style="text-align: center"> |
3 | - <a href="{{project.url()}}screenshot/{{ss.filename}}"><img src="{{project.url()}}screenshot/{{ss.filename}}/thumb"></a> | |
3 | + <a href="{{project.url()}}screenshot/{{ss.filename}}"><img src="{{project.url()}}screenshot/{{ss.filename}}/thumb" alt="Screenshot thumbnail"/></a> | |
4 | 4 | {% if not edit %} |
5 | 5 | <br> |
6 | 6 | {{ss.caption}} |
@@ -21,9 +21,9 @@ | ||
21 | 21 | <div class="editable viewing"> |
22 | 22 | <span class="viewer"> |
23 | 23 | {% if forum.icon %} |
24 | - <img src="{{forum.url()}}/icon"/> | |
24 | + <img src="{{forum.url()}}/icon" alt="Forum icon"/> | |
25 | 25 | {% else %} |
26 | - <img src="{{g.forge_static('images/project_default.png')}}"/> | |
26 | + <img src="{{g.forge_static('images/project_default.png')}}" alt="Forum icon"/> | |
27 | 27 | {% endif %} |
28 | 28 | </span> |
29 | 29 | <span class="editor">{{lib.file_field('forum-%s.icon' % loop.index0, '')}}</span> |
@@ -104,7 +104,7 @@ | ||
104 | 104 | <div class="attachment_thumb"> |
105 | 105 | {% if att.is_image() and not att.is_embedded() %} |
106 | 106 | <a href="{{att.url()}}" class="file_type"> |
107 | - <img src="{{att.url()}}/thumb"> | |
107 | + <img src="{{att.url()}}/thumb" alt=""> | |
108 | 108 | </a> |
109 | 109 | {% else %} |
110 | 110 | <a href="{{att.url()}}" class="file_type"> |
@@ -66,7 +66,7 @@ | ||
66 | 66 | <div class="attachment_thumb"> |
67 | 67 | {% if att.is_image() and not att.is_embedded() %} |
68 | 68 | <a href="{{att.url()}}" class="file_type"> |
69 | - <img src="{{att.url()}}/thumb"> | |
69 | + <img src="{{att.url()}}/thumb" alt="Thumbnail"> | |
70 | 70 | </a> |
71 | 71 | {% else %} |
72 | 72 | <a href="{{att.url()}}" class="file_type"> |
@@ -68,7 +68,7 @@ | ||
68 | 68 | {% if att.is_image() and not att.is_embedded() %} |
69 | 69 | <div class="attachment_thumb"> |
70 | 70 | <a href="{{att.url()}}"> |
71 | - <img src="{{att.url()}}/thumb"/> | |
71 | + <img src="{{att.url()}}/thumb" alt="Thumbnail"/> | |
72 | 72 | </a><br/> |
73 | 73 | <a href="{{att.url()}}">{{att.filename}}</a> |
74 | 74 | ({{att.length}} bytes) |
@@ -241,7 +241,7 @@ class TestRootController(TestController): | ||
241 | 241 | # Update the page to embed the image, make sure the thumbnail is absent |
242 | 242 | self.app.post('/wiki/TEST/update', params=dict( |
243 | 243 | title='TEST', |
244 | - text='sometext\n[[img src=%s]]' % file_name)) | |
244 | + text='sometext\n[[img src=%s alt=]]' % file_name)) | |
245 | 245 | r = self.app.get('/wiki/TEST/') |
246 | 246 | img_srcs = [ i['src'] for i in r.html.findAll('img') ] |
247 | 247 | assert ('/p/test/wiki/TEST/attachment/' + filename) not in img_srcs, img_srcs |
@@ -72,21 +72,21 @@ div.tool p { | ||
72 | 72 | </div> |
73 | 73 | <div class="inner-row"> |
74 | 74 | <div class="tool"> |
75 | - <img src="/nf/allura/images/wiki_48.png"> | |
75 | + <img src="/nf/allura/images/wiki_48.png" alt=""/> | |
76 | 76 | <h1>Wikis</h1> |
77 | 77 | <p> |
78 | 78 | Documentation is key to your project and the wiki tool helps make it easy for anyone to contribute. |
79 | 79 | </p> |
80 | 80 | </div> |
81 | 81 | <div class="tool"> |
82 | - <img src="/nf/allura/images/code_48.png"> | |
82 | + <img src="/nf/allura/images/code_48.png" alt=""/> | |
83 | 83 | <h1>Code</h1> |
84 | 84 | <p> |
85 | 85 | SVN, Git and Mercurial will help you keep track of your changes. |
86 | 86 | </p> |
87 | 87 | </div> |
88 | 88 | <div class="tool"> |
89 | - <img src="/nf/allura/images/tickets_48.png"> | |
89 | + <img src="/nf/allura/images/tickets_48.png" alt=""/> | |
90 | 90 | <h1>Tickets</h1> |
91 | 91 | <p> |
92 | 92 | Bugs, enhancements, tasks, etc., will help you plan and manage your development. |
@@ -95,21 +95,21 @@ div.tool p { | ||
95 | 95 | </div> |
96 | 96 | <div class="inner-row"> |
97 | 97 | <div class="tool"> |
98 | - <img src="/nf/allura/images/downloads_48.png"> | |
98 | + <img src="/nf/allura/images/downloads_48.png" alt=""/> | |
99 | 99 | <h1>Downloads</h1> |
100 | 100 | <p> |
101 | 101 | Use the largest free, managed, global mirror network to distribute your files. |
102 | 102 | </p> |
103 | 103 | </div> |
104 | 104 | <div class="tool"> |
105 | - <img src="/nf/allura/images/stats_48.png"> | |
105 | + <img src="/nf/allura/images/stats_48.png" alt=""/> | |
106 | 106 | <h1>Stats</h1> |
107 | 107 | <p> |
108 | 108 | Follow the download trends that enable you to develop better software. |
109 | 109 | </p> |
110 | 110 | </div> |
111 | 111 | <div class="tool"> |
112 | - <img src="/nf/allura/images/forums_48.png"> | |
112 | + <img src="/nf/allura/images/forums_48.png" alt=""/> | |
113 | 113 | <h1>Forums</h1> |
114 | 114 | <p> |
115 | 115 | Collaborate with your community in your forums. |