source: Klonkt/src/views/partials/read-article.ejs@ 847775c

main
Last change on this file since 847775c was 847775c, checked in by Bart <bart@…>, 3 weeks ago

Leesweergave: tikken op een bericht opent het bericht

De stroom toont de tekst, maar het gesprek staat op de berichtpagina: ⭐,
🔁, reacties, en het antwoordveld voor bezoekers van elders. Een leesweergave
waar je niet uit kunt naar dat gesprek is een doodlopende weg.

Drie ingangen, met opzet:

  • de titel is een echte <a>, dus toetsenbord, schermlezer en cmd-klik werken;
  • een voetlink zegt waar je heen gaat ("Reacties en waarderingen"), want een tik die je niet ziet, bestaat niet;
  • en een tik ergens op het bericht, voor een duim.

Die tik kent vier uitzonderingen, want een tik die je niet bedoelde is erger dan
geen tik: links, knoppen en velden houden hun eigen werking, een geselecteerde
tekst is geen tik, een verschoven vinger is scrollen, en cmd/ctrl-klik laat je
aan de browser. Alle vier nagemeten in de browser, plus dat een link ín een
bericht wint van de tik.

MOD_V naar 2: mod/read.js is gewijzigd.

Co-Authored-By: Claude Opus 5 <claude@…>

  • Property mode set to 100644
File size: 2.1 KB
Line 
1<%
2// Eén bericht in de leesstroom.
3//
4// Dit is het stuk dat de client AANVULT: bij de onderrand komt de oudere buur
5// eronder, bij de bovenrand de nieuwere erboven. Geen sprongen, geen
6// scrollpositie die stiekem verzet wordt -- de stroom groeit gewoon in de
7// richting waarin je leest, en de browser snapt naar de grenzen.
8//
9// Elk artikel draagt zijn eigen buren, dus de client hoeft niets te onthouden:
10// wat er nog te halen valt staat op het stuk dat er al is.
11var _b = (typeof siteUrlBase !== 'undefined' && siteUrlBase) ? siteUrlBase : '';
12var _newer = (typeof newerPost !== 'undefined' && newerPost) ? newerPost : null;
13var _older = (typeof olderPost !== 'undefined' && olderPost) ? olderPost : null;
14%>
15<article class="read-post"
16 data-slug="<%= post.slug %>"
17 data-newer="<%= _newer ? _newer.slug : '' %>"
18 data-older="<%= _older ? _older.slug : '' %>"
19 data-base="<%= _b %>"
20 data-title="<%= post.title || '' %>"
21 aria-label="<%= post.title || '' %>">
22 <%# De titel is een echte link naar het bericht zelf. De leesstroom toont de
23 TEKST, maar reacties, waarderingen en boosts staan op de berichtpagina --
24 en een stroom waar je niet uit kunt naar het gesprek is een doodlopende weg.
25 Een <a> en niet alleen een tik-afhandelaar: dat werkt ook met een
26 toetsenbord, met een schermlezer, en met cmd-klik. %>
27 <header class="read-head">
28 <h1 class="read-title"><a href="<%= _b %>/<%= post.slug %>"><%= post.title || '' %></a></h1>
29 <% if (post.published_at) { %><p class="read-when"><%= formatDateTime(post.published_at) %></p><% } %>
30 </header>
31
32 <%- include('post-body', {
33 post: post, access: entry.access, teaser: entry.teaser,
34 content_html: entry.content_html, _base: _b,
35 }) %>
36
37 <%# Zegt waar je heen gaat, in plaats van te vertrouwen op een tik die niemand
38 ziet. De tik-afhandelaar in mod/read.js is het gemak; dit is de aankondiging. %>
39 <footer class="read-foot">
40 <a class="read-open" href="<%= _b %>/<%= post.slug %>"><%= t('read.open') %> &rarr;</a>
41 </footer>
42</article>
Note: See TracBrowser for help on using the repository browser.