Section-based navigation

Definition:

We define section here as an abstract "part" of the document, with a meaning that is defined as part of the solution below. It has no relation to any other notion of sections that may be defined outside this document.

Value

Documents tend to consist of multiple logical "blocks". Providing a way for users to interact with these blocks as a unit, and in particular navigate between them with ease, improves the speed with which they can orient themselves and find the section they are interested in.

Proposed Solution

Text mode

We consider the following things to be sections (refer to Vocabularium - Glossary for definitions):

  • headings

  • list items

  • paragraphs

  • knowledge nodes

The user is then able to jump to the start of the next or the previous section.

Since sections can be nested, what the "next or previous" section means can be under some discussion. We choose to jump to the next "visible section", going top to bottom in the case of going forwards, and exactly the reverse when going backwards.

e.g.

In the above picture, the order of positions which would occur when jumping forward is marked.

When jumping backwards, the order is reversed.

Rdfa mode

When the "show annotation" toggle is turned on, we only consider knowledge nodes to be sections. This means that we only move between the visible "blocks" of knowledge, e.g.:

(red was used to mark the order, since the green boxes are part of the UI)

For 1, 2, 3 and 4, the caret will visually not move, since those blocks are all directly nested, and they start at the same position. This is why there is an extra visual indicator of which knowledge block is active using the green borders. The darkest and heaviest border is the block directly containing the caret, and the lighter borders are the blocks above it in the hierarchy.

Current Solution

The current solution deviates quite a bit from proposed. It is percieved that this navigation is not yet a critical feature users rely on and other things have taken priority.

Text Mode

Notably, the caret stops at more locations dan specified, e.g. at the end of sections, and at points where the text changes the basic styling. This is because the implementation currently simply jumps to the next textnode.

Rdfa Mode

When going forward, the behavior is as specified, however when going backwards, it skips directly nested blocks.

e.g.

Here, the "mandataris" and "aanwezige bij start" blocks are skipped when jumping backwards, but are visited correctly when jumping forwards.

There is also currently no way to reach the start of nested blocks which are at the start of the document, as in this example from earlier:

Here, positions 1, 2 and 3 are actually in no way reachable.

Last updated