Merge pull request #4556 from betagouv/more_accessibility

Corrige des fautes syntaxiques html
This commit is contained in:
LeSim 2019-11-21 17:17:09 +01:00 committed by GitHub
commit 04f29b404f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 110 additions and 100 deletions

View file

@ -35,16 +35,6 @@
display: block; display: block;
font-weight: bold; font-weight: bold;
.notice {
@include notice-text-style;
display: block;
margin-top: $default-spacer;
p {
margin-bottom: $default-spacer;
}
}
&.required { &.required {
&::after { &::after {
color: $dark-red; color: $dark-red;
@ -53,6 +43,17 @@
} }
} }
.notice {
@include notice-text-style;
font-weight: bold;
margin-top: - $default-spacer;
margin-bottom: $default-padding;
p {
margin-bottom: $default-spacer;
}
}
.editable-champ { .editable-champ {
position: relative; position: relative;
@ -73,6 +74,7 @@
&.editable-champ-checkbox, &.editable-champ-checkbox,
&.editable-champ-radio.vertical, &.editable-champ-radio.vertical,
&.editable-champ-engagement { &.editable-champ-engagement {
p,
label { label {
padding-left: 28px; padding-left: 28px;
} }

View file

@ -25,4 +25,10 @@ module ChampHelper
end end
simple_format(auto_linked_text, {}, sanitize: false) simple_format(auto_linked_text, {}, sanitize: false)
end end
def describedby_id(champ)
if champ.description.present?
"desc-#{champ.type_de_champ.id}-#{champ.row}"
end
end
end end

View file

@ -30,4 +30,10 @@ class Service < ApplicationRecord
service_cloned.administrateur = administrateur service_cloned.administrateur = administrateur
service_cloned service_cloned
end end
def telephone_url
if telephone.present?
"tel:#{telephone.gsub(/[[:blank:]]/, '')}"
end
end
end end

View file

@ -41,9 +41,8 @@
%h2.header-section %h2.header-section
Créer une nouvelle démarche à partir d'une démarche existante Créer une nouvelle démarche à partir d'une démarche existante
%label %p.notice
.notice Pour rechercher dans cette liste, utilisez la fonction "Recherche" de votre navigateur (CTRL+F ou command+F)
Pour rechercher dans cette liste, utilisez la fonction "Recherche" de votre navigateur (CTRL+F ou command+F)
%table.table.vertical.procedure-library-list %table.table.vertical.procedure-library-list
- @grouped_procedures.each do |_, procedures| - @grouped_procedures.each do |_, procedures|

View file

@ -11,13 +11,12 @@
.explication .explication
Configurez sur cette page les notifications que vous souhaitez recevoir par email pour cette démarche. Configurez sur cette page les notifications que vous souhaitez recevoir par email pour cette démarche.
= form.label :email_notification do = form.label :email_notification, "Recevoir une notification quotidienne"
Recevoir une notification quotidienne
%span.notice %p.notice
Cet email vous signale le dépôt de nouveaux dossiers sur cette démarche, ou des changements sur vos dossiers suivis. Cet email vous signale le dépôt de nouveaux dossiers sur cette démarche, ou des changements sur vos dossiers suivis.
%span.notice %p.notice
Il est envoyé une fois par jour, du lundi au samedi, vers 10 h du matin. Il est envoyé une fois par jour, du lundi au samedi, vers 10 h du matin.
.radios .radios
%label %label
@ -28,12 +27,11 @@
= form.radio_button :email_notifications_enabled, false = form.radio_button :email_notifications_enabled, false
Non Non
= form.label nil do = form.label nil, "Recevoir un récapitulatif hebdomadaire"
Recevoir un récapitulatif hebdomadaire %p.notice
%span.notice Cet email récapitule lactivité de la semaine sur lensemble de vos démarches.
Cet email récapitule lactivité de la semaine sur lensemble de vos démarches. %p.notice
%span.notice Il est envoyé chaque semaine le lundi matin, et nest pas désactivable.
Il est envoyé chaque semaine le lundi matin, et nest pas désactivable.
.radios .radios
%label %label

View file

@ -28,7 +28,7 @@
= link_to service.email, "mailto:#{service.email}" = link_to service.email, "mailto:#{service.email}"
%br %br
Par téléphone : Par téléphone :
= link_to service.telephone, "tel:#{service.telephone}" = link_to service.telephone, service.telephone_url
%br %br
Horaires : #{ formatted_horaires(service.horaires) } Horaires : #{ formatted_horaires(service.horaires) }

View file

@ -11,7 +11,7 @@
= f.label :routing_criteria_name do = f.label :routing_criteria_name do
Libellé du routage Libellé du routage
%span.notice Ce texte apparaitra sur le formulaire usager comme le libellé d'une liste %p.notice Ce texte apparaitra sur le formulaire usager comme le libellé d'une liste
= f.text_field :routing_criteria_name, placeholder: 'ex. Votre ville', required: true = f.text_field :routing_criteria_name, placeholder: 'ex. Votre ville', required: true
= f.submit 'Renommer', class: 'button primary send' = f.submit 'Renommer', class: 'button primary send'
@ -21,7 +21,7 @@
= form_for :groupe_instructeur, html: { class: 'form' } do |f| = form_for :groupe_instructeur, html: { class: 'form' } do |f|
= f.label :label do = f.label :label do
Ajouter un groupe Ajouter un groupe
%span.notice Ce groupe sera un choix de la liste « #{@procedure.routing_criteria_name} » . %p.notice Ce groupe sera un choix de la liste « #{@procedure.routing_criteria_name} » .
= f.text_field :label, placeholder: 'ex. Ville de Bordeaux', required: true = f.text_field :label, placeholder: 'ex. Ville de Bordeaux', required: true
= f.submit 'Ajouter le groupe', class: 'button primary send' = f.submit 'Ajouter le groupe', class: 'button primary send'

View file

@ -4,6 +4,6 @@
remote: true do |f| remote: true do |f|
= f.label :email do = f.label :email do
Ajouter un administrateur Ajouter un administrateur
%span.notice= "Renseignez lemail dun administrateur déjà enregistré sur demarches-simplifiees.fr pour lui permettre de modifier « #{procedure.libelle} »." %p.notice Renseignez lemail dun administrateur déjà enregistré sur demarches-simplifiees.fr pour lui permettre de modifier « #{procedure.libelle} ».
= f.email_field :email, placeholder: 'marie.dupont@exemple.fr', required: true = f.email_field :email, placeholder: 'marie.dupont@exemple.fr', required: true
= f.submit 'Ajouter comme administrateur', class: 'button primary send' = f.submit 'Ajouter comme administrateur', class: 'button primary send'

View file

@ -25,13 +25,13 @@
= f.label :duree_conservation_dossiers_dans_ds do = f.label :duree_conservation_dossiers_dans_ds do
Sur demarches-simplifiees.fr Sur demarches-simplifiees.fr
%span.mandatory * %span.mandatory *
.notice (durée en mois après le début de linstruction) %p.notice (durée en mois après le début de linstruction)
= f.number_field :duree_conservation_dossiers_dans_ds, class: 'form-control', placeholder: '6', required: true = f.number_field :duree_conservation_dossiers_dans_ds, class: 'form-control', placeholder: '6', required: true
= f.label :duree_conservation_dossiers_hors_ds do = f.label :duree_conservation_dossiers_hors_ds do
Hors demarches-simplifiees.fr Hors demarches-simplifiees.fr
%span.mandatory * %span.mandatory *
.notice (durée en mois après la fin de l'instruction) %p.notice (durée en mois après la fin de l'instruction)
= f.number_field :duree_conservation_dossiers_hors_ds, class: 'form-control', placeholder: '6', required: true = f.number_field :duree_conservation_dossiers_hors_ds, class: 'form-control', placeholder: '6', required: true
- if @procedure.created_at.present? - if @procedure.created_at.present?
@ -43,19 +43,19 @@
Cadre juridique Cadre juridique
%span.mandatory * %span.mandatory *
= f.label :cadre_juridique do %p.notice
.notice Le cadre juridique justifie le droit de collecter les données demandées dans votre démarche auprès des usagers. Par exemple :
%p %br
Le cadre juridique justifie le droit de collecter les données demandées dans votre démarche auprès des usagers. Par exemple :  Texte de loi (loi, décret, circulaire, arrêté…)
%br %br
 Texte de loi (loi, décret, circulaire, arrêté…)  Texte juridique (statuts, délibération, décision du conseil d'administration…)
%br %br
 Texte juridique (statuts, délibération, décision du conseil d'administration…) = link_to("En savoir plus avec cette vidéo de 5 minutes", CADRE_JURIDIQUE_URL, target: "_blank", rel: "noopener")
%br
= link_to("En savoir plus avec cette vidéo de 5 minutes", CADRE_JURIDIQUE_URL, target: "_blank", rel: "noopener") %p.notice
%p Vous pouvez saisir un lien web vers ce texte, ou limporter depuis un fichier.
Vous pouvez saisir un lien web vers ce texte, ou limporter depuis un fichier.
Lien vers le texte = f.label :cadre_juridique, 'Lien vers le texte'
= f.text_field :cadre_juridique, class: 'form-control', placeholder: 'https://www.legifrance.gouv.fr/' = f.text_field :cadre_juridique, class: 'form-control', placeholder: 'https://www.legifrance.gouv.fr/'
= f.label :deliberation, 'Importer le texte' = f.label :deliberation, 'Importer le texte'
@ -64,14 +64,13 @@
attached_file: @procedure.deliberation, attached_file: @procedure.deliberation,
user_can_destroy: true } user_can_destroy: true }
%h2.header-section %h2.header-section Notice explicative de la démarche
Notice explicative de la démarche
%p.notice
Une notice explicative est un document destiné à guider lusager dans sa démarche. Cest un document que vous avez élaboré et qui peut prendre la forme dun fichier doc, dun pdf ou encore de diapositives. Le bouton pour télécharger cette notice apparaît en haut du formulaire pour lusager.
= f.label :notice, 'Notice'
- notice = @procedure.notice - notice = @procedure.notice
= f.label :notice do
.notice
%p
Une notice explicative est un document destiné à guider lusager dans sa démarche. Cest un document que vous avez élaboré et qui peut prendre la forme dun fichier doc, dun pdf ou encore de diapositives. Le bouton pour télécharger cette notice apparaît en haut du formulaire pour lusager.
= render 'shared/attachment/edit', = render 'shared/attachment/edit',
{ form: f, { form: f,
attached_file: @procedure.notice, attached_file: @procedure.notice,
@ -82,15 +81,14 @@
.editable-champ.editable-champ-radio.vertical .editable-champ.editable-champ-radio.vertical
= f.label :for_individual, value: true do = f.label :for_individual, value: true do
Ma démarche sadresse à un particulier Ma démarche sadresse à un particulier
%span.notice %p.notice En choisissant cette option, lusager devra renseigner son nom et prénom avant daccéder au formulaire
%p En choisissant cette option, lusager devra renseigner son nom et prénom avant daccéder au formulaire
= f.radio_button :for_individual, true = f.radio_button :for_individual, true
.editable-champ.editable-champ-radio.vertical .editable-champ.editable-champ-radio.vertical
= f.label :for_individual, value: false do = f.label :for_individual, value: false do
Ma démarche sadresse à une personne morale Ma démarche sadresse à une personne morale
%span.notice %p.notice
%p En choisissant cette option, lusager devra renseigner son n° SIRET.<br>Grâce à lAPI Entreprise, les informations sur la personne morale (raison sociale, adresse du siège, etc.) seront automatiquement renseignées. En choisissant cette option, lusager devra renseigner son n° SIRET.<br>Grâce à lAPI Entreprise, les informations sur la personne morale (raison sociale, adresse du siège, etc.) seront automatiquement renseignées.
= f.radio_button :for_individual, false = f.radio_button :for_individual, false
%p.explication %p.explication
@ -103,10 +101,9 @@
- if feature_enabled?(:administrateur_web_hook) - if feature_enabled?(:administrateur_web_hook)
= f.label :web_hook_url do = f.label :web_hook_url do
Lien de rappel HTTP (webhook) Lien de rappel HTTP (webhook)
.notice %p.notice
%p Vous pouvez définir un lien de rappel HTTP (aussi appelé webhook) pour notifier un service tiers du changement de l'état dun dossier de cette démarche sur demarches-simplifiees.fr.
Vous pouvez définir un lien de rappel HTTP (aussi appelé webhook) pour notifier un service tiers du changement de l'état dun dossier de cette démarche sur demarches-simplifiees.fr. = link_to("Consulter la documentation du webhook", WEBHOOK_DOC_URL, target: "_blank", rel: "noopener")
= link_to("Consulter la documentation du webhook", WEBHOOK_DOC_URL, target: "_blank", rel: "noopener")
= f.text_field :web_hook_url, class: 'form-control', placeholder: 'https://callback.exemple.fr/' = f.text_field :web_hook_url, class: 'form-control', placeholder: 'https://callback.exemple.fr/'
= f.label :auto_archive_on do = f.label :auto_archive_on do

View file

@ -54,16 +54,13 @@
%h2.header-section Bouton radio verticaux %h2.header-section Bouton radio verticaux
.editable-champ.editable-champ-radio.vertical .editable-champ.editable-champ-radio.vertical
= f.label :archived, value: true do = f.label :archived, 'Option A', value: true
Option A %p.notice Une option tout à fait valable.
%span.notice
%p Une option tout à fait valable.
= f.radio_button :archived, true = f.radio_button :archived, true
.editable-champ.editable-champ-radio.vertical .editable-champ.editable-champ-radio.vertical
= f.label :archived, value: false do = f.label :archived, 'Option B', value: false
Option B %p.notice Une autre option, pas mal non plus.
%span.notice
%p Une autre option, pas mal non plus.
= f.radio_button :archived, false = f.radio_button :archived, false
.send-wrapper .send-wrapper

View file

@ -1,4 +1,4 @@
= form.label champ.main_value_name, { class: champ.repetition? ? 'header-section' : '' } do = form.label champ.main_value_name do
#{champ.libelle} #{champ.libelle}
- if champ.mandatory? - if champ.mandatory?
%span.mandatory * %span.mandatory *
@ -7,5 +7,5 @@
%span.updated-at{ class: highlight_if_unseen_class(seen_at, champ.updated_at) } %span.updated-at{ class: highlight_if_unseen_class(seen_at, champ.updated_at) }
= "modifié le #{try_format_datetime(champ.updated_at)}" = "modifié le #{try_format_datetime(champ.updated_at)}"
- if champ.description.present? - if champ.description.present?
%span.notice= string_to_html(champ.description) .notice{ id: describedby_id(champ) }= string_to_html(champ.description)

View file

@ -1,4 +1,3 @@
= form.date_field :value, = form.date_field :value,
value: champ.value, value: champ.value,
placeholder: 'JJ/MM/AAAA',
required: champ.mandatory? required: champ.mandatory?

View file

@ -1,5 +1,7 @@
.editable-champ{ class: "editable-champ-#{champ.type_champ}" } .editable-champ{ class: "editable-champ-#{champ.type_champ}" }
- if has_label?(champ) - if champ.repetition?
= render partial: 'shared/dossiers/editable_champs/header_section', locals: { champ: champ }
- elsif has_label?(champ)
= render partial: 'shared/dossiers/editable_champs/champ_label', locals: { form: form, champ: champ, seen_at: defined?(seen_at) ? seen_at : nil } = render partial: 'shared/dossiers/editable_champs/champ_label', locals: { form: form, champ: champ, seen_at: defined?(seen_at) ? seen_at : nil }
= render partial: "shared/dossiers/editable_champs/#{champ.type_champ}", = render partial: "shared/dossiers/editable_champs/#{champ.type_champ}",

View file

@ -1,3 +1,4 @@
= form.text_field :value, = form.text_field :value,
placeholder: champ.libelle, placeholder: champ.libelle,
required: champ.mandatory? required: champ.mandatory?,
aria: { describedby: describedby_id(champ) }

View file

@ -5,10 +5,10 @@
= f.text_area :body, rows: 5, placeholder: placeholder, required: true, class: 'message-textarea' = f.text_area :body, rows: 5, placeholder: placeholder, required: true, class: 'message-textarea'
.flex.justify-between.wrap .flex.justify-between.wrap
%div %div
= f.label :piece_jointe, for: :piece_jointe do
Joindre un document
%span.notice (taille max : 20 Mo)
= f.file_field :piece_jointe, id: 'piece_jointe', direct_upload: true = f.file_field :piece_jointe, id: 'piece_jointe', direct_upload: true
%label{ for: :piece_jointe }
%span.notice
(taille max : 20 Mo)
%div %div
= f.submit 'Envoyer le message', class: 'button primary send', data: { disable: true } = f.submit 'Envoyer le message', class: 'button primary send', data: { disable: true }

View file

@ -9,7 +9,7 @@
= link_to service.email, "mailto:#{service.email}" = link_to service.email, "mailto:#{service.email}"
%p.help-dropdown-service-item %p.help-dropdown-service-item
%span.icon.small.phone %span.icon.small.phone
= link_to service.telephone, "tel:#{service.telephone}" = link_to service.telephone, service.telephone_url
%p.help-dropdown-service-item %p.help-dropdown-service-item
%span.icon.small.clock %span.icon.small.clock
= service.horaires = service.horaires

View file

@ -3,40 +3,43 @@
- service = procedure.service - service = procedure.service
- if service.present? - if service.present?
.footer-row.footer-columns .footer-row.footer-columns
%ul.footer-column .footer-column
%p.footer-header Cette démarche est gérée par : %p.footer-header Cette démarche est gérée par :
%li %ul
= service.nom %li
%br = service.nom
= service.organisme %br
%br = service.organisme
= string_to_html(service.adresse, wrapper_tag = 'span') %br
= string_to_html(service.adresse, wrapper_tag = 'span')
%ul.footer-column .footer-column
%p.footer-header Poser une question sur votre dossier : %p.footer-header Poser une question sur votre dossier :
%li %ul
- if dossier.present? && dossier.messagerie_available? %li
Directement - if dossier.present? && dossier.messagerie_available?
= link_to "par la messagerie", messagerie_dossier_path(dossier) Directement
- else = link_to "par la messagerie", messagerie_dossier_path(dossier)
Par email : - else
= link_to service.email, "mailto:#{service.email}" Par email :
= link_to service.email, "mailto:#{service.email}"
%li %li
Par téléphone : Par téléphone :
%a{ href: "tel:#{service.telephone}" }= service.telephone = link_to service.telephone, service.telephone_url
%li %li
- horaires = "Horaires : #{formatted_horaires(service.horaires)}" - horaires = "Horaires : #{formatted_horaires(service.horaires)}"
= simple_format(horaires, {}, wrapper_tag: 'span') = simple_format(horaires, {}, wrapper_tag: 'span')
- politiques = politiques_conservation_de_donnees(procedure) - politiques = politiques_conservation_de_donnees(procedure)
- if politiques.present? - if politiques.present?
%ul.footer-column .footer-column
%p.footer-header Conservation des données : %p.footer-header Conservation des données :
- politiques.each do |politique| %ul
%li= politique - politiques.each do |politique|
%li= politique
= render partial: 'users/general_footer_row', locals: { dossier: dossier } = render partial: 'users/general_footer_row', locals: { dossier: dossier }