From 8bee07458b84a3c97d980af8bc26fbd8d9b72eab Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Tue, 5 Jul 2022 21:25:29 +0000 Subject: Finally get rid of the archaic markup for header and footer lines and use flexbox CSS instead. Improve accessibility by adding role and aria-label attributes to these header and footer lines. Using ideas from both Anna Vyalkova and myself. As a welcome side effect, this also resolves the long-standing issue that the rendering was always 65em wide, requiring horizontal scrolling when the window was narrower. Now, rendering nicely adapts to browser windows of arbitrary narrowness. --- man_html.c | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) (limited to 'man_html.c') diff --git a/man_html.c b/man_html.c index 1eeaadf2..19337a10 100644 --- a/man_html.c +++ b/man_html.c @@ -1,6 +1,6 @@ -/* $Id: man_html.c,v 1.181 2022/07/04 14:37:33 schwarze Exp $ */ +/* $Id: man_html.c,v 1.182 2022/07/05 21:25:29 schwarze Exp $ */ /* - * Copyright (c) 2013-2015, 2017-2020 Ingo Schwarze + * Copyright (c) 2013-2015,2017-2020,2022 Ingo Schwarze * Copyright (c) 2008-2012, 2014 Kristaps Dzonsons * * Permission to use, copy, modify, and distribute this software for any @@ -263,26 +263,26 @@ print_man_node(MAN_ARGS) static void man_root_pre(const struct roff_meta *man, struct html *h) { - struct tag *t, *tt; + struct tag *t; char *title; assert(man->title); assert(man->msec); mandoc_asprintf(&title, "%s(%s)", man->title, man->msec); - t = print_otag(h, TAG_TABLE, "c", "head"); - tt = print_otag(h, TAG_TR, ""); + t = print_otag(h, TAG_DIV, "cr?", "head", "doc-pageheader", + "aria-label", "manual header line"); - print_otag(h, TAG_TD, "c", "head-ltitle"); + print_otag(h, TAG_SPAN, "c", "head-ltitle"); print_text(h, title); - print_stagq(h, tt); + print_stagq(h, t); - print_otag(h, TAG_TD, "c", "head-vol"); + print_otag(h, TAG_SPAN, "c", "head-vol"); if (man->vol != NULL) print_text(h, man->vol); - print_stagq(h, tt); + print_stagq(h, t); - print_otag(h, TAG_TD, "c", "head-rtitle"); + print_otag(h, TAG_SPAN, "c", "head-rtitle"); print_text(h, title); print_tagq(h, t); free(title); @@ -291,16 +291,19 @@ man_root_pre(const struct roff_meta *man, struct html *h) static void man_root_post(const struct roff_meta *man, struct html *h) { - struct tag *t, *tt; + struct tag *t; + + t = print_otag(h, TAG_DIV, "cr?", "foot", "doc-pagefooter", + "aria-label", "manual footer line"); - t = print_otag(h, TAG_TABLE, "c", "foot"); - tt = print_otag(h, TAG_TR, ""); + print_otag(h, TAG_SPAN, "c", "foot-left"); + print_stagq(h, t); - print_otag(h, TAG_TD, "c", "foot-date"); + print_otag(h, TAG_SPAN, "c", "foot-date"); print_text(h, man->date); - print_stagq(h, tt); + print_stagq(h, t); - print_otag(h, TAG_TD, "c", "foot-os"); + print_otag(h, TAG_SPAN, "c", "foot-os"); if (man->os != NULL) print_text(h, man->os); print_tagq(h, t); -- cgit v1.2.3-56-ge451