Skip to content

Commit 7f294eb

Browse files
Pagina artigo - acessibilidade - Acessibilidade e Semântica: Implementação de ARIA Labels, Navegação Estruturada e Ajustes de Hierarquia (#1073)
* fix: adiciona âncora de nome ao material suplementar para melhorar navegação interna * fix(html): ajusta hierarquia semântica de títulos de seção (h4 para h3) * feat(accessibility): implementa aria-describedby para elementos gráficos com long-desc * feat(accessibility): implementa aria-label dinâmico e multi-idioma para links externos - Adiciona termos de interface para 'acesso', 'nova aba' e 'recurso externo' em config-labels.xml. - Aplica aria-label informativo em licenças, DOIs, links genéricos e perfis de contribuidores. - Garante conformidade com WCAG informando comportamento de abertura de janela via leitores de tela. * style: remove regras de CSS não utilizadas em html-modals-contribs * refactor(nav): melhora semântica da navegação do artigo com <nav> e labels
1 parent bb3f0a2 commit 7f294eb

9 files changed

Lines changed: 226 additions & 19 deletions

packtools/catalogs/htmlgenerator/v2.0/config-labels.xml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -576,4 +576,46 @@
576576
<name lang="pt">miniatura da</name>
577577
<name lang="es">miniatura de la</name>
578578
</term>
579+
<term>
580+
<name>access_link</name>
581+
<name lang="en">Access</name>
582+
<name lang="pt">Acessar</name>
583+
<name lang="es">Acceder</name>
584+
</term>
585+
<term>
586+
<name>opens_new_tab</name>
587+
<name lang="en">Opens in new tab</name>
588+
<name lang="pt">Abre em nova aba</name>
589+
<name lang="es">Abre en nueva pestaña</name>
590+
</term>
591+
<term>
592+
<name>external_resource</name>
593+
<name lang="en">External resource</name>
594+
<name lang="pt">Recurso externo</name>
595+
<name lang="es">Recurso externo</name>
596+
</term>
597+
<term>
598+
<name>access_doi</name>
599+
<name lang="en">Access DOI</name>
600+
<name lang="pt">Acessar DOI</name>
601+
<name lang="es">Acceder DOI</name>
602+
</term>
603+
<term>
604+
<name>access_contributor</name>
605+
<name lang="en">Access contributor profile</name>
606+
<name lang="pt">Acessar perfil do contribuidor</name>
607+
<name lang="es">Acceder perfil del contribuidor</name>
608+
</term>
609+
<term>
610+
<name>access_license</name>
611+
<name lang="en">Access license information</name>
612+
<name lang="pt">Acessar informações da licença</name>
613+
<name lang="es">Acceder información de la licencia</name>
614+
</term>
615+
<term>
616+
<name>article_navigation</name>
617+
<name lang="en">Article navigation</name>
618+
<name lang="pt">Navegação do artigo</name>
619+
<name lang="es">Navegación del artículo</name>
620+
</term>
579621
</labels>

packtools/catalogs/htmlgenerator/v3.0/article-meta-permissions.xsl

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,46 @@
55

66
<xsl:include href="../v2.0/article-meta-permissions.xsl"/>
77

8+
<xsl:template match="license">
9+
<xsl:variable name="url">https://licensebuttons.net/l/</xsl:variable>
10+
<xsl:variable name="path"><xsl:apply-templates select="." mode="license-acron-version"></xsl:apply-templates></xsl:variable>
11+
<xsl:variable name="icon"><xsl:value-of select="translate($path,'/',' ')"/></xsl:variable>
12+
13+
<xsl:variable name="access_text">
14+
<xsl:apply-templates select="." mode="interface">
15+
<xsl:with-param name="text">access_license</xsl:with-param>
16+
</xsl:apply-templates>
17+
</xsl:variable>
18+
<xsl:variable name="new_tab_text">
19+
<xsl:apply-templates select="." mode="interface">
20+
<xsl:with-param name="text">opens_new_tab</xsl:with-param>
21+
</xsl:apply-templates>
22+
</xsl:variable>
23+
<xsl:variable name="external_resource_text">
24+
<xsl:apply-templates select="." mode="interface">
25+
<xsl:with-param name="text">external_resource</xsl:with-param>
26+
</xsl:apply-templates>
27+
</xsl:variable>
28+
<xsl:variable name="aria_label">
29+
<xsl:value-of select="$access_text"/>
30+
<xsl:text> Creative Common - </xsl:text>
31+
<xsl:value-of select="$icon"/>
32+
<xsl:text>. </xsl:text>
33+
<xsl:value-of select="$new_tab_text"/>
34+
<xsl:text>. </xsl:text>
35+
<xsl:value-of select="$external_resource_text"/>
36+
<xsl:text>.</xsl:text>
37+
</xsl:variable>
38+
39+
<div class="col-sm-3 col-md-2">
40+
<a href="{@xlink:href}" target="_blank" aria-label="{normalize-space($aria_label)}">
41+
<img src="{$url}{$path}/88x31.png" alt="Creative Common - {$icon}"/>
42+
</a>
43+
</div>
44+
<div class="col-sm-9 col-md-10">
45+
<a href="{@xlink:href}" target="_blank" aria-label="{normalize-space($aria_label)}">
46+
<xsl:apply-templates select="license-p"/>
47+
</a>
48+
</div>
49+
</xsl:template>
850
</xsl:stylesheet>

packtools/catalogs/htmlgenerator/v3.0/article-text-graphic.xsl

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,22 @@
3737
<img>
3838
<xsl:attribute name="style">max-width:100%</xsl:attribute>
3939
<xsl:attribute name="src"><xsl:value-of select="$location"/></xsl:attribute>
40+
<xsl:apply-templates select="." mode="long-desc-aria-describedby">
41+
<xsl:with-param name="id"><xsl:value-of select="$id"/></xsl:with-param>
42+
</xsl:apply-templates>
4043
<xsl:apply-templates select="." mode="alt"/>
4144
</img>
4245
</xsl:otherwise>
4346
</xsl:choose>
4447
</xsl:template>
4548

49+
<xsl:template match="*" mode="long-desc-aria-describedby">
50+
<xsl:param name="id"/>
51+
<xsl:if test=".//long-desc">
52+
<xsl:attribute name="aria-describedby">desc<xsl:value-of select="$id"/></xsl:attribute>
53+
</xsl:if>
54+
</xsl:template>
55+
4656
<xsl:template match="*" mode="alt">
4757
<xsl:choose>
4858
<xsl:when test=".//alt-text">

packtools/catalogs/htmlgenerator/v3.0/article-text-ref.xsl

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,43 @@
5858
</xsl:if>
5959
</li>
6060
</xsl:template>
61+
62+
<xsl:template match="ext-link | pub-id" mode="ref">
63+
<xsl:apply-templates select=".">
64+
<xsl:with-param name="symbol">» </xsl:with-param>
65+
</xsl:apply-templates>
66+
</xsl:template>
67+
68+
<xsl:template match="pub-id[@pub-id-type='doi']">
69+
<xsl:param name="symbol"></xsl:param>
70+
<xsl:variable name="access_text">
71+
<xsl:apply-templates select="." mode="interface">
72+
<xsl:with-param name="text">access_doi</xsl:with-param>
73+
</xsl:apply-templates>
74+
</xsl:variable>
75+
<xsl:variable name="new_tab_text">
76+
<xsl:apply-templates select="." mode="interface">
77+
<xsl:with-param name="text">opens_new_tab</xsl:with-param>
78+
</xsl:apply-templates>
79+
</xsl:variable>
80+
<xsl:variable name="external_resource_text">
81+
<xsl:apply-templates select="." mode="interface">
82+
<xsl:with-param name="text">external_resource</xsl:with-param>
83+
</xsl:apply-templates>
84+
</xsl:variable>
85+
<xsl:variable name="doi_url">https://doi.org/<xsl:value-of select="."/></xsl:variable>
86+
<xsl:variable name="aria_label">
87+
<xsl:value-of select="$access_text"/>
88+
<xsl:text> </xsl:text>
89+
<xsl:value-of select="$doi_url"/>
90+
<xsl:text>. </xsl:text>
91+
<xsl:value-of select="$new_tab_text"/>
92+
<xsl:text>. </xsl:text>
93+
<xsl:value-of select="$external_resource_text"/>
94+
<xsl:text>.</xsl:text>
95+
</xsl:variable>
96+
<a target="_blank" href="{$doi_url}" aria-label="{normalize-space($aria_label)}">
97+
<xsl:value-of select="$symbol"/><xsl:value-of select="$doi_url"/>
98+
</a>
99+
</xsl:template>
61100
</xsl:stylesheet>

packtools/catalogs/htmlgenerator/v3.0/article-text-supplementary-material.xsl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@
100100
<xsl:template match="supplementary-material">
101101
<xsl:apply-templates select="." mode="supplementary-material-label-and-caption"/>
102102
<div class="row fig" id="{@id}">
103+
<a name="{@id}"></a>
103104
<div class="col-md-12 col-sm-12">
104105
<a target="_blank" download="1">
105106
<xsl:apply-templates select="." mode="supplementary-material-link"/>

packtools/catalogs/htmlgenerator/v3.0/article-text.xsl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212
</xsl:template>
1313

1414
<xsl:template match="sec/sec/title">
15-
<h4>
15+
<h3 class="h5">
1616
<xsl:apply-templates select="*|text()"/>
17-
</h4>
17+
</h3>
1818
</xsl:template>
1919

2020
<xsl:template match="sec/sec/sec/title">

packtools/catalogs/htmlgenerator/v3.0/article.xsl

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -181,17 +181,24 @@
181181
</xsl:template>
182182

183183
<xsl:template match="article" mode="article-or-abstract">
184-
<div class="row">
185-
<ul class="d-none d-lg-block col-lg-2 articleMenu"> </ul>
186-
<xsl:choose>
187-
<xsl:when test="$gs_abstract_lang">
188-
<xsl:apply-templates select="." mode="div-abstract"/>
189-
</xsl:when>
190-
<xsl:otherwise>
191-
<xsl:apply-templates select="." mode="div-article"/>
192-
</xsl:otherwise>
193-
</xsl:choose>
194-
</div>
184+
<xsl:variable name="navigation_text">
185+
<xsl:apply-templates select="." mode="interface">
186+
<xsl:with-param name="text">article_navigation</xsl:with-param>
187+
</xsl:apply-templates>
188+
</xsl:variable>
189+
<nav role="navigation" aria-label="{$navigation_text}">
190+
<ul class="-articleMenu list-group mt-4">
191+
<!-- item do menu lateral esquerdo -->
192+
</ul>
193+
</nav>
194+
<xsl:choose>
195+
<xsl:when test="$gs_abstract_lang">
196+
<xsl:apply-templates select="." mode="div-abstract"/>
197+
</xsl:when>
198+
<xsl:otherwise>
199+
<xsl:apply-templates select="." mode="div-article"/>
200+
</xsl:otherwise>
201+
</xsl:choose>
195202
</xsl:template>
196203

197204
<xsl:template match="article" mode="div-article">

packtools/catalogs/htmlgenerator/v3.0/generic.xsl

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,46 @@
1515
</small>
1616
</xsl:template>
1717

18+
<xsl:template match="ext-link">
19+
<xsl:param name="symbol"></xsl:param>
20+
<xsl:choose>
21+
<xsl:when test="@xlink:href">
22+
<xsl:variable name="access_text">
23+
<xsl:apply-templates select="." mode="interface">
24+
<xsl:with-param name="text">access_link</xsl:with-param>
25+
</xsl:apply-templates>
26+
</xsl:variable>
27+
<xsl:variable name="new_tab_text">
28+
<xsl:apply-templates select="." mode="interface">
29+
<xsl:with-param name="text">opens_new_tab</xsl:with-param>
30+
</xsl:apply-templates>
31+
</xsl:variable>
32+
<xsl:variable name="external_resource_text">
33+
<xsl:apply-templates select="." mode="interface">
34+
<xsl:with-param name="text">external_resource</xsl:with-param>
35+
</xsl:apply-templates>
36+
</xsl:variable>
37+
<xsl:variable name="link_text">
38+
<xsl:apply-templates select="*|text()"></xsl:apply-templates>
39+
</xsl:variable>
40+
<xsl:variable name="aria_label">
41+
<xsl:value-of select="$access_text"/>
42+
<xsl:text> </xsl:text>
43+
<xsl:value-of select="$link_text"/>
44+
<xsl:text>. </xsl:text>
45+
<xsl:value-of select="$new_tab_text"/>
46+
<xsl:text>. </xsl:text>
47+
<xsl:value-of select="$external_resource_text"/>
48+
<xsl:text>.</xsl:text>
49+
</xsl:variable>
50+
<a href="{@xlink:href}" target="_blank" aria-label="{normalize-space($aria_label)}">
51+
<xsl:value-of select="$symbol"/>
52+
<xsl:apply-templates select="*|text()"></xsl:apply-templates>
53+
</a>
54+
</xsl:when>
55+
<xsl:otherwise>
56+
<xsl:apply-templates select="*|text()"></xsl:apply-templates>
57+
</xsl:otherwise>
58+
</xsl:choose>
59+
</xsl:template>
1860
</xsl:stylesheet>

packtools/catalogs/htmlgenerator/v3.0/html-modals-contribs.xsl

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,7 @@
4545
.author-name {
4646
font-weight: 600;
4747
}
48-
.material-icons-outlined {
49-
vertical-align: middle;
50-
margin-right: 4px;
51-
}
48+
5249
.orcid-button {
5350
padding-left: 2.5rem;
5451
}
@@ -144,8 +141,35 @@
144141
</xsl:template>
145142

146143
<xsl:template match="contrib-id" mode="modal-contrib">
147-
<a target="_blank" class="btn btn-secondary {@contrib-id-type}-button">
148-
<xsl:attribute name="href"><xsl:apply-templates select="." mode="url"/><xsl:value-of select="."/></xsl:attribute>
144+
<xsl:variable name="access_text">
145+
<xsl:apply-templates select="." mode="interface">
146+
<xsl:with-param name="text">access_contributor</xsl:with-param>
147+
</xsl:apply-templates>
148+
</xsl:variable>
149+
<xsl:variable name="new_tab_text">
150+
<xsl:apply-templates select="." mode="interface">
151+
<xsl:with-param name="text">opens_new_tab</xsl:with-param>
152+
</xsl:apply-templates>
153+
</xsl:variable>
154+
<xsl:variable name="external_resource_text">
155+
<xsl:apply-templates select="." mode="interface">
156+
<xsl:with-param name="text">external_resource</xsl:with-param>
157+
</xsl:apply-templates>
158+
</xsl:variable>
159+
<xsl:variable name="contributor_url">
160+
<xsl:apply-templates select="." mode="url"/><xsl:value-of select="."/>
161+
</xsl:variable>
162+
<xsl:variable name="aria_label">
163+
<xsl:value-of select="$access_text"/>
164+
<xsl:text> </xsl:text>
165+
<xsl:value-of select="."/>
166+
<xsl:text>. </xsl:text>
167+
<xsl:value-of select="$new_tab_text"/>
168+
<xsl:text>. </xsl:text>
169+
<xsl:value-of select="$external_resource_text"/>
170+
<xsl:text>.</xsl:text>
171+
</xsl:variable>
172+
<a target="_blank" class="btn btn-secondary {@contrib-id-type}-button" href="{$contributor_url}" aria-label="{normalize-space($aria_label)}">
149173
<xsl:value-of select="."/>
150174
</a>
151175
</xsl:template>

0 commit comments

Comments
 (0)