demarches-normaliennes/app/views/users/_procedure_footer.html.haml
Colin Darie 52b6502cbd test(a11y): ensure we don't mix aria-label and title on main pages
Actuellement, on fait le choix de ne pas avoir d'éléments porteurs à la
fois d'aria-label et title.
Bien qu'en principe l'aria-label quand elle est gérée par un navigateur,
prenne précédence sur le title, en pratique un bug dans NVDA cumule les 2
et rend la navigation difficile.

On prend donc le parti (provisoire?) de n'avoir que l'un ou l'autre.

Nous gardons le title si l'info qu'il contient est également pertinente
pour les navigateurs graphiques qui l'affichent en guise de tooltip ;
autrement on bascule sur l'aria-label qui est plus largement supporté
par les navigateurs a11y.
2022-12-05 10:38:16 +01:00

77 lines
3.8 KiB
Text

%footer.fr-footer#footer{ role: "contentinfo" }
- service = procedure.service
.fr-footer__top
.fr-container
.fr-grid-row.fr-grid-row--start.fr-grid-row--gutters
.fr-col-12.fr-col-sm-4.fr-col-md-4
%h3.fr-footer__top-cat= I18n.t('users.procedure_footer.contact.header')
%ul.fr-footer__top-list
- if dossier.present? && dossier.messagerie_available?
%li
= link_to I18n.t('users.procedure_footer.contact.in_app_mail.link'), messagerie_dossier_path(dossier), class: 'fr-footer__top-link'
- elsif service.present?
%li
= link_to I18n.t('users.procedure_footer.contact.email.link', service_email: service.email), "mailto:#{service.email}", class: 'fr-footer__top-link'
%li
- horaires = "#{I18n.t('users.procedure_footer.contact.schedule.prefix')}#{formatted_horaires(service.horaires)}"
= link_to service.telephone_url, class: 'fr-footer__top-link' do
= I18n.t('users.procedure_footer.contact.phone.link', service_telephone: service.telephone)
%br
= horaires
%li
= link_to I18n.t('users.procedure_footer.contact.stats.link'), statistiques_path(procedure.path), class: 'fr-footer__top-link', rel: 'noopener'
- politiques = politiques_conservation_de_donnees(procedure)
- if politiques.present?
.fr-col-12.fr-col-sm-4.fr-col-md-4
%h3.fr-footer__top-cat= I18n.t('users.procedure_footer.legals.header')
%ul.fr-footer__top-list
- politiques.each do |politique|
%li
= link_to t("users.procedure_footer.legals.data_retention_url"), class: "fr-footer__top-link" do
= politique
- if procedure.deliberation.attached?
%li
= link_to url_for(procedure.deliberation), rel: 'noopener', class: 'fr-footer__top-link' do
= I18n.t("users.procedure_footer.legals.terms")
- else
%li
= link_to I18n.t("users.procedure_footer.legals.terms"), procedure.cadre_juridique, rel: 'noopener', class: 'fr-footer__top-link'
- if procedure.lien_dpo.present?
%li
= link_to url_or_email_to_lien_dpo(procedure), rel: 'noopener', class: 'fr-footer__top-link' do
= I18n.t("users.procedure_footer.legals.dpo")
.fr-col-12.fr-col-sm-4.fr-col-md-4
%h3.fr-footer__top-cat= I18n.t('users.procedure_footer.dematerialisation.header')
%ul.fr-footer__top-list
%li
= link_to t('users.procedure_footer.dematerialisation.title_1'), commencer_dossier_vide_for_revision_path(procedure.active_revision), rel: 'noopener', class: 'fr-footer__top-link'
%li
= link_to t('users.procedure_footer.dematerialisation.title_2'),t('users.procedure_footer.dematerialisation.link'), rel: 'noopener', class: 'fr-footer__top-link'
.fr-container
.fr-footer__body
.fr-footer__brand.fr-enlarge-link
= link_to t("links.provider.url"), title: t("links.provider.title") do
%p.fr-logo
premier
%br
ministre
- if service.present?
.fr-footer__content
%p.fr-footer__content-desc
= I18n.t('users.procedure_footer.managed_by.header')
%span{ lang: :fr }
= "#{service.nom},"
= "#{service.organisme},"
= string_to_html(service.adresse, 'span')
= render partial: "shared/footer_content_list"
.fr-footer__bottom
= render partial: 'users/general_footer_row', locals: { dossier: dossier }
= render partial: 'shared/footer_copy'