Commit 26ff2effbf282d7646eb8c3d0e075587f3800e2d

Authored by Adabriand Furtado
1 parent 0a18797a
Exists in master

Accessibility changes - tab navigation and alt text for images

assets/css/base.css
... ... @@ -82,9 +82,10 @@ img {
82 82 bottom: 0;
83 83 }
84 84  
85   -.wl-scroll-links span {
  85 +.wl-scroll-links a {
86 86 padding-right: 22px;
87 87 cursor: pointer;
  88 + color: #2d2d2d;
88 89 }
89 90  
90 91 .wl-login-btn-wrapper {
... ... @@ -94,14 +95,14 @@ img {
94 95 }
95 96  
96 97 .wl-login-link {
97   - float: right;
  98 + float: left;
98 99 font-weight: bold;
99 100 color: #33a0d1;
100 101 padding: 10px 35px 0 0;
101 102 }
102 103  
103 104 .wl-participate-btn {
104   - float: right;
  105 + float: left;
105 106 padding: 9px 12px;
106 107 }
107 108  
... ... @@ -131,8 +132,14 @@ img {
131 132 }
132 133  
133 134 .wl-sections-link-wrapper .section-link {
134   - padding-left: 20px;
  135 + padding: 0 20px 0 0;
135 136 cursor: pointer;
  137 + color: white;
  138 +}
  139 +
  140 +.wl-sections-link-wrapper .section-link:hover,
  141 + .wl-sections-link-wrapper .section-link:focus {
  142 + background-color: transparent;
136 143 }
137 144  
138 145 /* Sections */
... ... @@ -151,6 +158,7 @@ img {
151 158 }
152 159  
153 160 .wl-section-title .title {
  161 + color: white;
154 162 padding: 5px 0;
155 163 background-color: #0f78a7;
156 164 -webkit-border-radius: 6px;
... ... @@ -158,6 +166,10 @@ img {
158 166 border-radius: 6px;
159 167 }
160 168  
  169 +.wl-section-title a {
  170 + text-decoration: none;
  171 +}
  172 +
161 173 .wl-section-description {
162 174 margin-top: 90px;
163 175 font-size: 14px;
... ... @@ -390,10 +402,7 @@ img {
390 402  
391 403 /* Signs and Ranking Section */
392 404 #wl-signs-and-ranking {
393   - position: relative;
394   - z-index: 1;
395 405 background: #ffffff;
396   - height: 100vh;
397 406 }
398 407  
399 408 .wl-signs-and-ranking-container {
... ... @@ -401,6 +410,7 @@ img {
401 410 flex-direction: row;
402 411 flex-wrap: wrap;
403 412 background: white;
  413 + height: 100vh;
404 414 }
405 415  
406 416 .wl-signs-and-ranking-wrapper {
... ...
assets/js/main.controller.js
1 1 (function () {
2 2 'use strict';
3 3  
4   - angular.module('wikilibras').controller('wikilibrasCtrl', ['$scope', '$window', '$document', function ($scope, $window) {
5   - $scope.openUrl = function(url) {
6   - $window.open(url, "_self");
7   - };
8   - }]);
  4 + angular.module('wikilibras').controller('wikilibrasCtrl', ['$scope', function ($scope) {}]);
9 5 }());
10 6 \ No newline at end of file
... ...
assets/js/ranking/ranking.service.js
... ... @@ -4,13 +4,29 @@
4 4 angular.module('wikilibras.ranking').service("rankingService", ['$http', '$q', function ($http, $q) {
5 5 var PROJECT_CONF_URL = 'conf/app-conf.json';
6 6 var RANKING_ENDPOINT = '/api/leaderboard?limit=20';
  7 + var NUMBER_OF_COLUMNS = 2;
  8 +
  9 + function splitToChunks(array, chunk) {
  10 + if (array && array.length < 1 || chunk === 0) return array;
  11 +
  12 + var result = [];
  13 + for (var i = 0; i < array.length; i += chunk) {
  14 + result.push(array.slice(i, i+chunk));
  15 + }
  16 + return result;
  17 + }
7 18  
8 19 return {
9 20 getRankingData: function() {
10 21 return $http.get(PROJECT_CONF_URL).then(function(response) {
11 22 var baseApiUrl = response.data.pybossa_url;
12 23 return $http.get(baseApiUrl + RANKING_ENDPOINT).then(function(response) {
13   - console.log(response);
  24 +
  25 + angular.forEach(response.data, function(obj, key) {
  26 + response.data[key] = splitToChunks(obj, NUMBER_OF_COLUMNS);
  27 + console.log(response.data[key]);
  28 + });
  29 + console.log(response.data);
14 30 return response.data;
15 31 });
16 32 });
... ...
assets/templates/header.html
... ... @@ -27,21 +27,23 @@
27 27 <div id="main-menu" class="container-fluid container wl-nav-bar-container">
28 28 <div class="row wl-nav-bar-wrapper">
29 29 <div class="col-xs-4 wl-logo-wrapper">
30   - <div class="wl-logo-wrapper-img">
31   - <img src="assets/img/wl-logo.png">
32   - </div>
33   - <img class="hidden-xs wl-title" src="assets/img/wl-title.png">
  30 + <a href="#wl-presentation-video" du-smooth-scroll offset="42">
  31 + <div class="wl-logo-wrapper-img">
  32 + <img src="assets/img/wl-logo.png" alt="Logomarca do WikiLibras">
  33 + </div>
  34 + <img class="hidden-xs wl-title" src="assets/img/wl-title.png" alt="Logomarca do WikiLibras">
  35 + </a>
34 36 </div>
35 37 <div class="col-xs-8 wl-scroll-links-wrapper">
36 38 <div class="hidden-xs wl-scroll-links pull-left">
37   - <span du-smooth-scroll="wl-overview" accesskey="1">Ir para o conteúdo (alt+1)</span>
38   - <span du-smooth-scroll="wl-presentation-video" offset="42" accesskey="2">Ir para o menu (alt+2)</span>
  39 + <a href="#wl-overview" du-smooth-scroll accesskey="c">Ir para o conteúdo (alt+c)</a></span>
  40 + <a href="#wl-presentation-video" du-smooth-scroll offset="42" accesskey="m">Ir para o menu (alt+m)</a>
39 41 </div>
40 42 <div class="wl-login-btn-wrapper pull-right">
41   - <div class="btn btn-info wl-btn wl-participate-btn" ng-click="openUrl('/pybossa/account/register')">
42   - Participar
43   - </div>
44 43 <a href="/pybossa/account/signin" class="wl-login-link">Entrar</a>
  44 + <a href="/pybossa/account/register" class="btn btn-info wl-btn wl-participate-btn">
  45 + Participar
  46 + </a>
45 47 </div>
46 48 </div>
47 49 </div>
... ... @@ -59,11 +61,11 @@
59 61 </button>
60 62 <div class="col-xs-12 collapse navbar-collapse pull-right" id="bs-navbar-collapse">
61 63 <ul class="nav navbar-nav wl-sections-link-wrapper">
62   - <li class="section-link" du-smooth-scroll="wl-presentation-video" offset="42">o projeto</li>
63   - <li class="section-link" du-smooth-scroll="wl-overview">o que já produzimos</li>
64   - <li class="section-link">tutoriais</li>
65   - <li class="section-link" du-smooth-scroll="wl-features">quem faz o que</li>
66   - <li class="section-link" du-smooth-scroll="wl-signs-and-ranking">ranking</li>
  64 + <li><a href="#wl-presentation-video" class="section-link" du-smooth-scroll offset="42">o projeto</a></li>
  65 + <li><a href="#wl-overview" class="section-link" du-smooth-scroll>o que já produzimos</a></li>
  66 + <li><a href="#wl-features" class="section-link" du-smooth-scroll>quem faz o que </a></li>
  67 + <li><a href="#wl-volunteers" class="section-link" du-smooth-scroll>comunidade</a></li>
  68 + <li><a href="#wl-signs-and-ranking" class="section-link" du-smooth-scroll>ranking</a></li>
67 69 </ul>
68 70 </div>
69 71 </div>
... ...
assets/templates/sections.html
... ... @@ -2,7 +2,9 @@
2 2 <div class="container-fluid container wl-video-control-container">
3 3 <div class="row">
4 4 <div class="wl-video-control-wrapper">
5   - <img class="wl-video-control" src="assets/img/wl-icon-play.png">
  5 + <a href="#wl-presentation-video" du-smooth-scroll offset="42">
  6 + <img class="wl-video-control" src="assets/img/wl-icon-play.png">
  7 + </a>
6 8 </div>
7 9 </div>
8 10 </div>
... ... @@ -14,11 +16,13 @@
14 16 <div class="col-xs-12">
15 17 <div class="row">
16 18 <div class="col-xs-12 wl-section-title">
17   - <div class="title">o
18   - que
19   - já
20   - produzimos
21   - </div>
  19 + <a href="#wl-overview" du-smooth-scroll>
  20 + <div class="title">o
  21 + que
  22 + já
  23 + produzimos
  24 + </div>
  25 + </a>>
22 26 </div>
23 27 </div>
24 28 </div>
... ... @@ -27,7 +31,7 @@
27 31 O Wikilibras é uma plataforma colaborativa para construção de dicionário em LIBRAS.
28 32 </p>
29 33 <p>
30   - Acompanhe abaixo o progresso alçado pela comunidade WikiLibras.
  34 + Acompanhe abaixo o progresso conquistado pela comunidade WikiLibras.
31 35 </p>
32 36 </div>
33 37 <div class="col-xs-12 wl-overview-progress-wrapper">
... ... @@ -126,21 +130,23 @@
126 130 <div class="container-fluid">
127 131 <div class="row">
128 132 <div class="col-xs-12 wl-section-title">
129   - <div class="title">você
130   - pode
131   - colaborar
132   - </div>
  133 + <a href="#wl-features" du-smooth-scroll>
  134 + <div class="title">você
  135 + pode
  136 + colaborar
  137 + </div>
  138 + </a>
133 139 </div>
134 140 <div class="col-xs-12 wl-features-container">
135 141 <div class="wl-features-wrapper -salmon">
136 142 <div class="wl-feature">
137 143 <div class="wl-feature-img">
138   - <img src="assets/img/wl-feature-send-video.png">
  144 + <img src="assets/img/wl-feature-send-video.png" alt="Ícone de envio de vídeos">
139 145 </div>
140   - <div class="btn btn-info wl-btn wl-feature-btn" ng-click="openUrl('/pybossa/project/wikilibras/newtask')">
  146 + <a href="/pybossa/project/wikilibras/newtask" class="btn btn-info wl-btn wl-feature-btn">
141 147 enviar
142 148 video
143   - </div>
  149 + </a>
144 150 <div class="wl-feature-description">
145 151 <span>Grave seu sinal e envie para nossa comunidade.</span>
146 152 </div>
... ... @@ -152,12 +158,12 @@
152 158 <div class="wl-features-wrapper -yellow">
153 159 <div class="wl-feature">
154 160 <div class="wl-feature-img">
155   - <img src="assets/img/wl-feature-create-sign.png">
  161 + <img src="assets/img/wl-feature-create-sign.png" alt="Ícone de criação de sinais">
156 162 </div>
157   - <div class="btn btn-info wl-btn wl-feature-btn" ng-click="openUrl('/pybossa/project/wikilibras/newtask')">
  163 + <a href="/pybossa/project/wikilibras/newtask" class="btn btn-info wl-btn wl-feature-btn">
158 164 criar
159 165 sinal
160   - </div>
  166 + </a>
161 167 <div class="wl-feature-description">
162 168 <span> Ensine Ícaro, o nosso avatar, a fazer um sinal.
163 169 </span>
... ... @@ -170,12 +176,12 @@
170 176 <div class="wl-features-wrapper -blue">
171 177 <div class="wl-feature">
172 178 <div class="wl-feature-img">
173   - <img src="assets/img/wl-feature-fix-sign.png">
  179 + <img src="assets/img/wl-feature-fix-sign.png" alt="Ícone de correção de sinais">
174 180 </div>
175   - <div class="btn btn-info wl-btn wl-feature-btn" ng-click="openUrl('/pybossa/project/corretor_sinais/newtask')">
  181 + <a href="/pybossa/project/corretor_sinais/newtask" class="btn btn-info wl-btn wl-feature-btn">
176 182 corrigir
177 183 sinal
178   - </div>
  184 + </a>
179 185 <div class="wl-feature-description">
180 186 <span>O sinal está incorreto? Colabore corrigindo-o.
181 187 </span>
... ... @@ -190,8 +196,10 @@
190 196 <div class="container-fluid">
191 197 <div class="row">
192 198 <div class="col-xs-12 wl-section-title">
193   - <div class="title">pessoas
  199 + <a href="#wl-volunteers" du-smooth-scroll>
  200 + <div class="title">pessoas
194 201 colaborando</div>
  202 + </a>
195 203 </div>
196 204 <div class="col-xs-12 wl-volunteers-container">
197 205 <div ng-repeat="avatar in volunteersData.avatars_data | limitTo: 50" class="wl-volunteers-wrapper">
... ... @@ -207,9 +215,11 @@
207 215 <div class="col-xs-12 wl-signs-and-ranking-container">
208 216 <div class="wl-signs-and-ranking-wrapper" ng-controller="signsCtrl">
209 217 <div class="wl-section-title">
210   - <div class="title">sinais
211   - construídos
212   - </div>
  218 + <a href="#wl-signs-and-ranking" du-smooth-scroll>
  219 + <div class="title">sinais
  220 + construídos
  221 + </div>
  222 + </a>
213 223 </div>
214 224 <div class="wl-section-description">
215 225 <p>Confira alguns sinais que a comunidade WikiLibras já produziu.</p>
... ... @@ -224,12 +234,33 @@
224 234 <div ng-repeat="i in [1,2,3]" ng-if="signsData.length % 3 === 0? false: i <= 3 - signsData.length % 3" class="wl-signs-wrapper">
225 235 </div>
226 236 </div>
  237 + <div class="modal clean-modal sign-modal fade" tabindex="-1"
  238 + role="dialog" aria-labelledby="modalUserSignal">
  239 + <div class="modal-dialog" role="document">
  240 + <div class="modal-content">
  241 + <div class="modal-body">
  242 + <div class="sign-video-container">
  243 + <video id="sign-modal-video" autoplay loop preload="none">
  244 + <source ng-repeat="source in getSignData(activeSignId).sources" vsrc="{{ source.path }}" type="{{ source.type }}" html5vfix>
  245 + Sem suporte a vídeos
  246 + </video>
  247 + </div>
  248 + <p class="sign-name text-center">
  249 + {{ getSignData(activeSignId).signName }}<br>
  250 + <span class="created-by">criado por: {{ getSignData(activeSignId).userId }}</span>
  251 + </p>
  252 + </div>
  253 + </div>
  254 + </div>
  255 + </div>
227 256 </div>
228 257 <div class="wl-signs-and-ranking-wrapper" ng-controller="rankingCtrl">
229 258 <div class="wl-section-title">
230   - <div class="title">ranking
231   - dos colaborandores
232   - </div>
  259 + <a href="#wl-signs-and-ranking" du-smooth-scroll>
  260 + <div class="title">ranking
  261 + dos colaborandores
  262 + </div>
  263 + </a>
233 264 </div>
234 265 <div class="wl-section-description"></div>
235 266 <div class="row">
... ... @@ -262,17 +293,17 @@
262 293 </div>
263 294 </div>
264 295 </div>
265   - <div ng-show="activeTab == 0" class="wl-ranking-container">
266   - <div class="row">
267   - <div class="col-xs-6" ng-repeat="user in rankingData.wikilibras">
  296 + <div ng-show="activeTab === 0" class="wl-ranking-container">
  297 + <div class="row" ng-repeat="row in rankingData.wikilibras">
  298 + <div class="col-xs-6" ng-repeat="user in row">
268 299 <div class="wl-rank">
269 300 <div class="row">
270 301 <div class="col-xs-4">
271 302 <div class="star-wrapper">
272   - <img ng-if="[0,1,2].indexOf($index) !== -1" ng-src="assets/img/{{$index === 0? 'gold':($index === 1? 'silver': 'bronze')}}-star-icon.png">
  303 + <img ng-if="[1,2,3].indexOf(user.rank) !== -1" ng-src="assets/img/{{user.rank === 1? 'gold':(user.rank === 2? 'silver': 'bronze')}}-star-icon.png" alt="Estrela de {{user.rank === 1? 'ouro':(user.rank === 2? 'prata': 'bronze')}}">
273 304 </div>
274 305 <div class="position-wrapper">
275   - {{ $index+1 }}.
  306 + {{ user.rank }}.
276 307 </div>
277 308 </div>
278 309 <div class="col-xs-8 wl-ranked-volunteer">
... ... @@ -284,16 +315,16 @@
284 315 </div>
285 316 </div>
286 317 <div ng-show="activeTab === 1" class="wl-ranking-container">
287   - <div class="row">
288   - <div class="col-xs-6" ng-repeat="user in rankingData.corretor_sinais">
  318 + <div class="row" ng-repeat="row in rankingData.corretor_sinais">
  319 + <div class="col-xs-6" ng-repeat="user in row">
289 320 <div class="wl-rank">
290 321 <div class="row">
291 322 <div class="col-xs-4">
292 323 <div class="star-wrapper">
293   - <img ng-if="[0,1,2].indexOf($index) !== -1" ng-src="assets/img/{{$index === 0? 'gold':($index === 1? 'silver': 'bronze')}}-star-icon.png">
  324 + <img ng-if="[1,2,3].indexOf(user.rank) !== -1" ng-src="assets/img/{{user.rank === 1? 'gold':(user.rank === 2? 'silver': 'bronze')}}-star-icon.png" alt="Estrela de {{user.rank === 1? 'ouro':(user.rank === 2? 'prata': 'bronze')}}">
294 325 </div>
295 326 <div class="position-wrapper">
296   - {{ $index+1 }}.
  327 + {{ user.rank }}.
297 328 </div>
298 329 </div>
299 330 <div class="col-xs-8 wl-ranked-volunteer">
... ... @@ -305,20 +336,20 @@
305 336 </div>
306 337 </div>
307 338 <div ng-show="activeTab === 2" class="wl-ranking-container">
308   - <div class="row">
309   - <div class="col-xs-6" ng-repeat="user in rankingData.validador_sinais">
  339 + <div class="row" ng-repeat="row in rankingData.validador_sinais">
  340 + <div class="col-xs-6" ng-repeat="user in row">
310 341 <div class="wl-rank">
311 342 <div class="row">
312 343 <div class="col-xs-4">
313 344 <div class="star-wrapper">
314   - <img ng-if="[0,1,2].indexOf($index) !== -1" ng-src="assets/img/{{$index === 0? 'gold':($index === 1? 'silver': 'bronze')}}-star-icon.png">
  345 + <img ng-if="[1,2,3].indexOf(user.rank) !== -1" ng-src="assets/img/{{user.rank === 1? 'gold':(user.rank === 2? 'silver': 'bronze')}}-star-icon.png" alt="Estrela de {{user.rank === 1? 'ouro':(user.rank === 2? 'prata': 'bronze')}}">
315 346 </div>
316 347 <div class="position-wrapper">
317   - {{ $index+1 }}.
  348 + {{ user.rank }}.
318 349 </div>
319 350 </div>
320 351 <div class="col-xs-8 wl-ranked-volunteer">
321   - {{ user.fullname }}
  352 + {{ user.name }}
322 353 </div>
323 354 </div>
324 355 </div>
... ... @@ -332,7 +363,7 @@
332 363 <div class="row">
333 364 <div class="col-xs-4">
334 365 <div class="star-wrapper">
335   - <img ng-if="[0,1,2].indexOf($index) !== -1" ng-src="assets/img/{{$index === 0? 'gold':($index === 1? 'silver': 'bronze')}}-star-icon.png">
  366 + <img ng-if="[0,1,2].indexOf($index) !== -1" ng-src="assets/img/{{$index === 0? 'gold':($index === 1? 'silver': 'bronze')}}-star-icon.png" alt="Estrela de {{$index === 0? 'ouro':($index === 1? 'prata': 'bronze')}}">
336 367 </div>
337 368 <div class="position-wrapper">
338 369 {{ $index+1 }}.
... ... @@ -350,23 +381,4 @@
350 381 </div>
351 382 </div>
352 383 </div>
353   -</section>
354   -<div class="modal clean-modal sign-modal fade" tabindex="-1"
355   - role="dialog" aria-labelledby="modalUserSignal">
356   - <div class="modal-dialog" role="document">
357   - <div class="modal-content">
358   - <div class="modal-body">
359   - <div class="sign-video-container">
360   - <video id="sign-modal-video" autoplay loop preload="none">
361   - <source ng-repeat="source in getSignData(activeSignId).sources" vsrc="{{ source.path }}" type="{{ source.type }}" html5vfix>
362   - Sem suporte a vídeos
363   - </video>
364   - </div>
365   - <p class="sign-name text-center">
366   - {{ getSignData(activeSignId).signName }}<br>
367   - <span class="created-by">criado por: {{ getSignData(activeSignId).userId }}</span>
368   - </p>
369   - </div>
370   - </div>
371   - </div>
372   -</div>
373 384 \ No newline at end of file
  385 +</section>
374 386 \ No newline at end of file
... ...