The sub-menu of Your details and Your career names the section you are in #677
Labels
No labels
accessibility
authentication
breaking change
bug
documentation
enhancement
interface
internationalisation
observability
performance
security
tier
1
tier
2
tier
3
tier/4
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Postulo/postulo#677
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
On Your details and on Your career the sidebar is headed “On this page” however far down you have read. The maintainer's list asks for the title of the section instead, when that title is no longer on the screen: "Sub-menu should display section title instead of “On this page”, when title is not on screen" (the same line is under Your details and under Your career).
What exists today
<p>with the fixed text “On this page”, then{% sidebar section_nav … %}(src/postulo/templates/accounts/profile.html:30-35,src/postulo/templates/resume/overview.html:31-36). The aside islg:sticky lg:top-[calc(var(--header-height,3.5rem)+1rem)], so fromlgup it stays in view while the sections scroll; belowlgit is a horizontal strip above the sections and scrolls away with them.partials/sidebar.html: a<nav aria-label="…">of anchors, each withdata-section-link="<section id>". The nav's accessible name is “Parts of your details” or “Career sections”; the visible “On this page” is a separate paragraph, not a heading and not part of that name.app.jsalready answers “which section is being read”: the observer atsrc/postulo/static/js/app.js:2730-2794picks the last section whose top has passed a line two-fifths down the part of the window not under the header, treats the last section as current at the bottom of the page, and setsaria-current="location"and thenav-link-activeclass on its link. It never touches the label. With scripts off the list still navigates and says nothing about where you are.<h2>in<section id="section-<slug>">(overview.html:39-41); Your details uses<c-section-title>(an<h2>,templates/cotton/section_title.html) for Your picture, Your name and Contact block, and a<legend class="label">in a<fieldset>for Telephone numbers, Postal addresses, Identifiers and each link block (partials/phone_numbers.html:23-24,partials/postal_addresses.html:27-28,partials/web_links.html:15-16,profile.html:186-187). The entry's text in the sidebar is the same string as that title.overview.html), so with twenty experiences the title of Experience is several screens above the part being read, and the label still says “On this page”.settings/base.html:16-18,server/base.html:11-13); they are not part of this issue (see #699 for Server settings).assets/css/app.css:1826-1834); this change has no motion to reduce as long as it stays a text swap. A narrow screen has a precedent for reacting to the breakpoint from script (app.js:1428,matchMedia("(min-width: 64rem)")).Checked against
mainatf09b6010b.Proposal
<p>above the list getsdata-section-labelin both templates. “On this page” stays in the template as the text scripts-off visitors see, and is what script restores; the script holds no English (the rule the live regions inbase.htmlalready follow).h2orlegendinside it) has scrolled up past the bottom of the masthead, the label's text becomes that title's text; otherwise it is the original text again. Only fromlgup, where the aside sticks; below that the label is left alone, and the media query is listened to so a resize back restores it.aria-current="location", which stays as it is. The nav keeps its own accessible name.base.htmlgives for not truncating the address in the account menu. A title that takes two lines moves the list by a line at the moment the label changes; see the decision below.Decisions
<h1>has scrolled away, as Settings and Server settings already head their sidebar with the name of the area. Recommended: (a), the only reading that follows the reader down a long page; the page's name is in the tab title already. It repeats, above the list, the entry the list highlights below it, which is what the list asks for. If (b) was meant it is a smaller change (one more condition on the same observer) and the Decision becomes only which string.lgthe label scrolls away with the aside, so there is nothing to keep in view. Recommended: leave it as it is.Builds on
#175 (the sections as anchors and the observer), #180 (Your details in parts), #195 (the floating header and
--header-height). Related: #676 puts Your career in the account menu and touches the same two templates; the two are independent.Done when
/career/and/accounts/profile/at 1280 pixels wide, scrolling until a section's title is behind the masthead makes the label that title, and scrolling back up restores “On this page”; at 390 pixels wide the label does not change. New cases intests/e2e/test_career_sections.py(the career page, which already has the fixture and the viewport helpers) and a counterpart for Your details.browser.new_context(java_script_enabled=False)as the e2e suite does elsewhere); withprefers-reduced-motion: reducenothing animates (there is nothing to animate).aria-current="location"still follows the section, and there is noaria-liveon the label.tests/test_career_sections.pyandtests/test_profile_sections.pyare extended to pin thedata-section-labelhook on both pages and that the static text is still in the HTML.tests/e2e/test_text_spacing.py,tests/e2e/test_reflow.py), and the axe run over both pages (tests/e2e/test_accessibility.py, lines 487 and 491) is clean in both themes.From the list of improvements of 2026-10-02.