diff options
| author | Ingo Schwarze <schwarze@openbsd.org> | 2022-07-05 21:25:29 +0000 |
|---|---|---|
| committer | Ingo Schwarze <schwarze@openbsd.org> | 2022-07-05 21:25:29 +0000 |
| commit | 8bee07458b84a3c97d980af8bc26fbd8d9b72eab (patch) | |
| tree | fddf846e6fb1cd89dfdc50d8affca7625aff709a /mdoc_html.c | |
| parent | ae49b31649e571ceb182e182bc1eeff17e7b16ae (diff) | |
| download | mandoc-8bee07458b84a3c97d980af8bc26fbd8d9b72eab.tar.gz mandoc-8bee07458b84a3c97d980af8bc26fbd8d9b72eab.zip | |
Finally get rid of the archaic <table> 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 <cyber at sysrq dot in> 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.
Diffstat (limited to 'mdoc_html.c')
| -rw-r--r-- | mdoc_html.c | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/mdoc_html.c b/mdoc_html.c index 390fcbca..bd731ddf 100644 --- a/mdoc_html.c +++ b/mdoc_html.c @@ -1,4 +1,4 @@ -/* $Id: mdoc_html.c,v 1.346 2022/07/04 14:37:33 schwarze Exp $ */ +/* $Id: mdoc_html.c,v 1.347 2022/07/05 21:25:29 schwarze Exp $ */ /* * Copyright (c) 2014-2022 Ingo Schwarze <schwarze@openbsd.org> * Copyright (c) 2008-2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv> @@ -453,16 +453,19 @@ print_mdoc_node(MDOC_ARGS) static void mdoc_root_post(const struct roff_meta *meta, 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, meta->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"); print_text(h, meta->os); print_tagq(h, t); } @@ -470,7 +473,7 @@ mdoc_root_post(const struct roff_meta *meta, struct html *h) static int mdoc_root_pre(const struct roff_meta *meta, struct html *h) { - struct tag *t, *tt; + struct tag *t; char *volume, *title; if (NULL == meta->arch) @@ -485,18 +488,18 @@ mdoc_root_pre(const struct roff_meta *meta, struct html *h) mandoc_asprintf(&title, "%s(%s)", meta->title, meta->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"); print_text(h, volume); - 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); |
