Skip to content

feat: utiliser les headings de déclaration pour extraire les sections#531

Open
yann120 wants to merge 4 commits into
mainfrom
feat/extract_to_next_accessibility_page_heading
Open

feat: utiliser les headings de déclaration pour extraire les sections#531
yann120 wants to merge 4 commits into
mainfrom
feat/extract_to_next_accessibility_page_heading

Conversation

@yann120

@yann120 yann120 commented Apr 22, 2026

Copy link
Copy Markdown
Collaborator

Contexte

Sur certaines déclarations, l’extraction échoue car le découpage actuel s’appuie sur le heading HTML suivant, ce qui peut tronquer la section analysée.
exemple :
Capture d’écran 2026-04-22 à 10 25 11

Changements

  • ajout d’un découpage métier basé sur les headings attendus d’une déclaration
  • extraction du contenu entre un heading de déclaration et le prochain heading de déclaration reconnu dans la page
  • factorisation des headings attendus dans AccessibilityDeclarationHeadings

Effet

Corrige le cas de ce site et tout autre page ayant des sous-header dans la déclaration sans modifier le comportement générique de Page.

@yann120 yann120 marked this pull request as ready for review April 22, 2026 09:00
@yann120 yann120 requested a review from Josyann April 22, 2026 09:00
@yann120 yann120 added the feature Feature or enhancement task label Apr 22, 2026
@yann120 yann120 self-assigned this Apr 22, 2026
@yann120 yann120 linked an issue Apr 22, 2026 that may be closed by this pull request
Comment on lines +40 to +47
<h2>Retour d'information et contact</h2>
<h3>Contact</h3>
<p>
Pour toute question, écrire à
<a href="mailto:direction_communication_groupe@carrefour.com">direction_communication_groupe@carrefour.com</a>
</p>
<h2>Voies de recours</h2>
<p>Vous pouvez contacter le Défenseur des droits.</p>

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tu peux faire du clean là dedans et laisser un titre de plus au dessus et en dessous si vraiment besoin mais là c'est un peu beaucoup !
Et aussi je sais que notre exemple viens de Carrouf mais utilisons quelque chose de différent :D

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

J'ai fais du ménage et j'ai modifié les noms de la société, emails

Comment on lines +1 to +21
module AccessibilityDeclarationHeadings
EXPECTED_HEADINGS = [
[2, "État de conformité"],
[3, "Résultats des tests"],
[2, "Contenus non accessibles"],
[3, "Non-conformités"],
[3, "Dérogations pour charge disproportionnée"],
[3, "Contenus non soumis à l'obligation d'accessibilité"],
[2, "Établissement de cette déclaration d'accessibilité"],
[3, "Technologies utilisées pour la réalisation du site"],
[3, "Environnement de test"],
[3, "Outils pour évaluer l'accessibilité"],
[3, "Pages du site ayant fait l'objet de la vérification de conformité"],
[2, "Retour d'information et contact"],
[2, "Voies de recours"],
].freeze

def self.expected_heading_titles
EXPECTED_HEADINGS.map { |_, heading_title| heading_title }
end
end

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
module AccessibilityDeclarationHeadings
EXPECTED_HEADINGS = [
[2, "État de conformité"],
[3, "Résultats des tests"],
[2, "Contenus non accessibles"],
[3, "Non-conformités"],
[3, "Dérogations pour charge disproportionnée"],
[3, "Contenus non soumis à l'obligation d'accessibilité"],
[2, "Établissement de cette déclaration d'accessibilité"],
[3, "Technologies utilisées pour la réalisation du site"],
[3, "Environnement de test"],
[3, "Outils pour évaluer l'accessibilité"],
[3, "Pages du site ayant fait l'objet de la vérification de conformité"],
[2, "Retour d'information et contact"],
[2, "Voies de recours"],
].freeze
def self.expected_heading_titles
EXPECTED_HEADINGS.map { |_, heading_title| heading_title }
end
end
module AccessibilityDeclarationHeadings
extend ActiveSupport::Concern
EXPECTED_HEADINGS = [
[2, "État de conformité"],
[3, "Résultats des tests"],
[2, "Contenus non accessibles"],
[3, "Non-conformités"],
[3, "Dérogations pour charge disproportionnée"],
[3, "Contenus non soumis à l'obligation d'accessibilité"],
[2, "Établissement de cette déclaration d'accessibilité"],
[3, "Technologies utilisées pour la réalisation du site"],
[3, "Environnement de test"],
[3, "Outils pour évaluer l'accessibilité"],
[3, "Pages du site ayant fait l'objet de la vérification de conformité"],
[2, "Retour d'information et contact"],
[2, "Voies de recours"],
].freeze
def expected_headings
EXPECTED_HEADINGS
end
def expected_heading_titles
expected_headings.map { |_, heading_title| heading_title }
end
end

Dans les autres fichiers :

    include AccessibilityDeclarationHeadings

[...]

    def total
      expected_heading_titles.count
    end

[...]

Pas de AccessibilityDeclarationHeadings et c'est construit comme un concern.
Gaffe au class << self dans FindAccessibilityPageService, met le include concern après.

Ça serait peut-être bien qu'on fasse des noms de methods plus explicit ici, d'inclure la notion de la déclaration... à voir 🤷‍♀️

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merci pour ces commentaires constructifs! 😄

Pas de AccessibilityDeclarationHeadings et c'est construit comme un concern.

J'ai converti en un concern

Gaffe au class << self dans FindAccessibilityPageService, met le include concern après.

J'ai mis FindAccessibilityPageService dans le class << self, c'est bien ça ?

Ça serait peut-être bien qu'on fasse des noms de methods plus explicit ici, d'inclure la notion de la déclaration... à voir

J'ai renommé en expected_declaration_headings

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature Feature or enhancement task

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEAT] Améliorer la recherche du taux

2 participants