• Mahmoud Aglan's avatar
    fix(website): reachable dropdowns, one h1 per page, and the content a reference sweep found missing · 36e7bbf3
    Mahmoud Aglan authored
    A pointer-level test and a page-by-page diff against the reference site, rather
    than reading the markup.
    
    Dropdowns could be opened but not used. The panel sat 4px below its trigger with
    nothing in the gap, and the menu closed the instant the pointer left the
    trigger's box — so travelling to an item crossed dead space and the menu shut
    before the click landed. The panel now starts flush against the trigger
    (`top-full`, padding inside the panel rather than a margin outside it), and the
    close is delayed and cancellable. Same contract applied to the language
    switcher, which had the identical gap. Verified by dispatching real mouse moves
    along the path a hand takes: the menu survives the trip and the click lands on
    /en/football.
    
    `columns` silently dropped its children. It reads them from slots col1..colN, so
    a child in the generic `default` slot — what a blueprint import or a hand-built
    tree naturally produces — matched no column and vanished with no error and no
    empty box. That is how the about-us video disappeared. Loose children are now
    dealt out across the columns.
    
    Nine of eleven pages had no h1 at all. Blocks hardcoded their heading level, so
    whichever section carried a page's title rendered as h2 and the document had no
    top-level heading. `heading_level` is now part of the section-header contract
    (and of text_image, video, profile_card, contact_form, app_download, cta,
    rich_text), so the section carrying the page title is an authoring decision
    rather than an accident of which block was used. Every page now has exactly one.
    
    Also from the sweep:
    - El3ab's entire privacy policy — nine sections, both languages — was absent
      from our page. Restored from the reference render.
    - The line the reference shows above its contact form was missing; contact_form
      gains `form_intro`.
    - The chairman's name was a <p> on top of the portrait; it is a heading.
    - Footer column titles were <h4> with no <h3> above them, a skipped level in the
      outline screen readers navigate by. Promoted to <h3>.
    - `heading_rule` had been added to app_download *inside* its features repeater,
      so every feature row offered a meaningless "underline" control and the section
      heading offered none. Moved to where the heading actually is.
    
    Verified: 22 page/locale combinations answer 200 with no logged block failures,
    137 block/variant combinations render, every page has exactly one h1, the
    carousel still does not scroll the page, and the suite passes.
    Co-Authored-By: 's avatarClaude Opus 5 (1M context) <noreply@anthropic.com>
    36e7bbf3