Your career is seven sections deep with no way to reach the sixth #175
Labels
No labels
accessibility
authentication
breaking change
bug
documentation
enhancement
interface
internationalisation
observability
security
tier
1
tier
2
tier
3
tier/4
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Postulo/postulo#175
Loading…
Add table
Add a link
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?
resume/overview.htmlstacks every section of somebody's career down one page, inOVERVIEW_ORDER:Seven headings, and each holds a list with no ceiling on it. Somebody with a dozen roles, a
few degrees, twenty skills across three groups and a handful of links is scrolling past
hundreds of rows to reach Languages, every time, and has nothing on the page telling them
the section is even down there. The only way to find out what this page holds is to reach
the bottom of it.
Give it a left-hand nav listing the sections, so the page can be navigated rather than
traversed.
There is already a pattern for this, and it is two files away
settings/solves exactly this problem:core/settings_sections.pydeclares the sectionsand
templates/settings/sidebar.htmldraws them. That template is fourteen lines andalready handles the thing worth getting right:
A horizontal strip that scrolls on a narrow screen, a vertical column from
lgup. Itmarks the current entry with both a class and
aria-current="page", and wraps the lot in a<nav aria-label=...>. Reuse it rather than writing a second one — and if it needsgeneralising to take a list of anchors as well as a list of URLs, generalise it, so the two
pages cannot drift apart.
Worth settling while doing it
sections are all on one. An in-page anchor list is the smaller change and keeps
"everything in one place", which is what the page's own blurb promises. Splitting into
seven pages is a bigger question and probably a different issue.
scrolling in the first place, and an empty section saying "0" is a prompt to fill it.
how somebody discovers Postulo can hold their languages at all.
scroll-xon a phone. Seven labels do not fit on 390px, and #73 is where that getsits proper attention; matching what settings already does is the least this can do in the
meantime.
aria-current="page"and a focus order that does not trap, sameas the settings one. An anchor list that a keyboard cannot use is a list for half the
people who need it most.
Landed on
mainas4e52c8d48, the way this issue suggested: the Settings sidebar,generalised rather than copied.
settings/sidebar.htmlispartials/sidebar.htmlnow andtakes entries -- an
href, alabel, and optionally anicon, acount, ananchorandwhat current means -- so Settings and Server navigate between pages through it and Your
career navigates within one. One template; the two cannot drift.
Each entry says how many the section holds, and a section with nothing in it is listed all
the same. Sticky from
lgup; the same sideways strip on a phone that Settings has.Current is
aria-current="location", notpage, because they are all one page, and itis set by app.js since only the browser knows which section is on the screen: the last
section whose top has passed a line two-fifths of the way down the window -- and at the
bottom of the page the last section, whatever the line says, because a short final section
can never reach it. That last rule came out of the browser test failing first: the
topmost-on-screen rule could never mark Languages. Without the script the list still
navigates; it only stops saying where you are.
Tests read the markup (order, anchors, counts, the empty section, nothing marked by the
server, Settings still marking its page) and a browser (an entry takes you to its section
and is marked there; on a phone the strip sits above the sections, inside the screen). The
wiki's Your career record page says so too.