From: Anna <cyber@sysrq.in>
To: Ingo Schwarze <schwarze@usta.de>
Cc: tech@mandoc.bsd.lv
Subject: Re: [PATCH 1/3] Wrap manual header in the "<header>" tag
Date: Tue, 5 Jul 2022 21:15:48 +0500 [thread overview]
Message-ID: <YsRjtD/ia5by8lTz@sysrq.in> (raw)
In-Reply-To: <YsRV3yNbBmJwDxo0@asta-kit.de>
On 2022-07-05 17:16, Ingo Schwarze wrote:
> > Yes, there's no such requirement. I misinterpreted it. So wrapping the
> > form in <header> is fine.
>
> Done. In addition, i also committed another patch to move
> the <h1> site header typically contained in header.html
> into the <header>.
>
>
> Next, i drafted a patch to use <header> for the manual header line,
> but it does not work, and i feel a bit at a loss now. The version
> of the patch appended below (also installed on man.bsd.lv for
> testing) is deliberately inconsistent to demonstrate two ways
> of writing the <header>.
>
> For manuals in man(7) format, the patch implements the original idea,
> so for example, https://man.bsd.lv/cvs.1 contains:
>
> <header role="doc-pageheader" aria-label="manual header line">
> <table class="head">
> <tr>
> <td class="head-ltitle">CVS(1)</td>
> <td class="head-vol">General Commands Manual</td>
> <td class="head-rtitle">CVS(1)</td>
> </tr>
> </table>
> </header>
>
> But that is invalid code, see
>
> https://validator.w3.org/nu/?doc=https%3A%2F%2Fman.bsd.lv%2Fcvs.1
>
> Error: Bad value doc-pageheader for attribute role on element header.
> From line 171, column 1; to line 171, column 62
>
> And indeed, https://www.w3.org/TR/html-aria/#docconformance says:
>
> HTML element: <header>
> ARIA roles which MAY be used: group, none or presentation.
Same with footer.
> So we must not use doc-pageheader on <header>.
>
> My next attempt was to move the ARIA information from the <header>
> to the contained <table>. For demonstration, i implemented that
> for manuals in mdoc(7) format. For example, https://man.bsd.lv/true.1
> contains:
>
> <header role="group">
> <table role="doc-pageheader" aria-label="manual header line">
> <tr>
> <td class="head-ltitle">TRUE(1)</td>
> <td class="head-vol">General Commands Manual</td>
> <td class="head-rtitle">TRUE(1)</td>
> </tr>
> </table>
> </header>
>
> But the validator complains anyway:
>
> https://validator.w3.org/nu/?doc=https%3A%2F%2Fman.bsd.lv%2Ftrue.1
>
> Error: Bad value doc-pageheader for attribute role on element table.
> From line 172, column 1; to line 172, column 61
>
> I have no idea why; https://www.w3.org/TR/html-aria/#docconformance says:
>
> HTML element: <table>
> ARIA roles which MAY be used: Any role
>
> The section https://www.w3.org/TR/html-aria/#allowed-descendants-of-aria-roles
> does not appear to restrict the content of an element of role="group";
> it allows any flow content. I don't see anything
> in https://www.w3.org/TR/dpub-aria-1.1/#doc-pageheader either
> that might be violated.
>
> Do you have an idea what might be wrong here, or how we could fix it?
>
> If you have no idea either, i might just drop the <header> element
> around the manual header line, like this:
>
> [...]
> </form>
> </header>
> <hr>
> <table role="doc-pageheader" aria-label="manual header line">
> <tr>
> <td class="head-ltitle">TRUE(1)</td>
> <td class="head-vol">General Commands Manual</td>
> <td class="head-rtitle">TRUE(1)</td>
> </tr>
> </table>
> <main class="manual-text">
> <section class="Sh">
> [...]
>
> That looks syntactically and semantically correct to me,
> and the validator doesn't complain about it either.
Whatever works (but then we need to keep class="head" for styles).
While we're at this, can we use something other than tables for
pageheader/pagefooter layout?
https://git.sr.ht/~devinprater/fossability/tree/master/item/user%20interface%20and%20experience/web.md#html
> Yours,
> Ingo
>
>
> Index: html.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/mandoc/html.c,v
> retrieving revision 1.148
> diff -u -p -r1.148 html.c
> --- html.c 3 Jul 2022 14:28:26 -0000 1.148
> +++ html.c 5 Jul 2022 14:06:10 -0000
> @@ -1,7 +1,7 @@
> /* $OpenBSD: html.c,v 1.148 2022/07/03 14:28:26 schwarze Exp $ */
> /*
> + * Copyright (c) 2011-2015, 2017-2022 Ingo Schwarze <schwarze@openbsd.org>
> * Copyright (c) 2008-2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
> - * Copyright (c) 2011-2015, 2017-2021 Ingo Schwarze <schwarze@openbsd.org>
> * Copyright (c) 2022 Anna Vyalkova <cyber@sysrq.in>
> *
> * Permission to use, copy, modify, and distribute this software for any
> @@ -66,10 +66,12 @@ static const struct htmldata htmltags[TA
> {"style", HTML_NLALL | HTML_INDENT},
> {"title", HTML_NLAROUND},
> {"body", HTML_NLALL},
> + {"header", HTML_NLALL},
> {"main", HTML_NLALL},
> {"div", HTML_NLAROUND},
> {"section", HTML_NLALL},
> {"nav", HTML_NLALL},
> + {"footer", HTML_NLALL},
> {"table", HTML_NLALL | HTML_INDENT},
> {"tr", HTML_NLALL | HTML_INDENT},
> {"td", HTML_NLAROUND},
> Index: html.h
> ===================================================================
> RCS file: /cvs/src/usr.bin/mandoc/html.h,v
> retrieving revision 1.73
> diff -u -p -r1.73 html.h
> --- html.h 3 Jul 2022 14:28:27 -0000 1.73
> +++ html.h 5 Jul 2022 14:06:10 -0000
> @@ -2,6 +2,7 @@
> /*
> * Copyright (c) 2017, 2018, 2019, 2020 Ingo Schwarze <schwarze@openbsd.org>
> * Copyright (c) 2008-2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
> + * Copyright (c) 2022 Anna Vyalkova <cyber@sysrq.in>
> *
> * Permission to use, copy, modify, and distribute this software for any
> * purpose with or without fee is hereby granted, provided that the above
> @@ -27,10 +28,12 @@ enum htmltag {
> TAG_STYLE,
> TAG_TITLE,
> TAG_BODY,
> + TAG_HEADER,
> TAG_MAIN,
> TAG_DIV,
> TAG_SECTION,
> TAG_NAV,
> + TAG_FOOTER,
> TAG_TABLE,
> TAG_TR,
> TAG_TD,
> Index: man_html.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/mandoc/man_html.c,v
> retrieving revision 1.134
> diff -u -p -r1.134 man_html.c
> --- man_html.c 4 Jul 2022 14:37:14 -0000 1.134
> +++ man_html.c 5 Jul 2022 14:06:10 -0000
> @@ -1,7 +1,8 @@
> /* $OpenBSD: man_html.c,v 1.134 2022/07/04 14:37:14 schwarze Exp $ */
> /*
> - * Copyright (c) 2013-2015, 2017-2020 Ingo Schwarze <schwarze@openbsd.org>
> + * Copyright (c) 2013-2015,2017-2020,2022 Ingo Schwarze <schwarze@openbsd.org>
> * Copyright (c) 2008-2012, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
> + * Copyright (c) 2022 Anna Vyalkova <cyber@sysrq.in>
> *
> * Permission to use, copy, modify, and distribute this software for any
> * purpose with or without fee is hereby granted, provided that the above
> @@ -268,7 +269,9 @@ man_root_pre(const struct roff_meta *man
> assert(man->msec);
> mandoc_asprintf(&title, "%s(%s)", man->title, man->msec);
>
> - t = print_otag(h, TAG_TABLE, "c", "head");
> + t = print_otag(h, TAG_HEADER, "r?", "doc-pageheader",
> + "aria-label", "manual header line");
> + print_otag(h, TAG_TABLE, "c", "head");
> tt = print_otag(h, TAG_TR, "");
>
> print_otag(h, TAG_TD, "c", "head-ltitle");
> @@ -291,7 +294,9 @@ man_root_post(const struct roff_meta *ma
> {
> struct tag *t, *tt;
>
> - t = print_otag(h, TAG_TABLE, "c", "foot");
> + t = print_otag(h, TAG_FOOTER, "r?", "doc-pagefooter",
> + "aria-label", "manual footer line");
> + print_otag(h, TAG_TABLE, "c", "foot");
> tt = print_otag(h, TAG_TR, "");
>
> print_otag(h, TAG_TD, "c", "foot-date");
> Index: mandoc.css
> ===================================================================
> RCS file: /cvs/src/usr.bin/mandoc/mandoc.css,v
> retrieving revision 1.37
> diff -u -p -r1.37 mandoc.css
> --- mandoc.css 3 Jul 2022 14:28:27 -0000 1.37
> +++ mandoc.css 5 Jul 2022 14:06:10 -0000
> @@ -53,7 +53,8 @@ table.results { margin-top: 1em;
>
> /* Header and footer lines. */
>
> -table.head { width: 100%;
> +header > table {
> + width: 100%;
> border-bottom: 1px dotted #808080;
> margin-bottom: 1em;
> font-size: smaller; }
> @@ -61,7 +62,8 @@ td.head-vol { text-align: center; }
> td.head-rtitle {
> text-align: right; }
>
> -table.foot { width: 100%;
> +footer > table {
> + width: 100%;
> border-top: 1px dotted #808080;
> margin-top: 1em;
> font-size: smaller; }
> Index: mdoc_html.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/mandoc/mdoc_html.c,v
> retrieving revision 1.221
> diff -u -p -r1.221 mdoc_html.c
> --- mdoc_html.c 4 Jul 2022 14:37:14 -0000 1.221
> +++ mdoc_html.c 5 Jul 2022 14:06:10 -0000
> @@ -453,7 +453,9 @@ mdoc_root_post(const struct roff_meta *m
> {
> struct tag *t, *tt;
>
> - t = print_otag(h, TAG_TABLE, "c", "foot");
> + t = print_otag(h, TAG_FOOTER, "r", "group");
> + print_otag(h, TAG_TABLE, "r?", "doc-pagefooter",
> + "aria-label", "manual footer line");
> tt = print_otag(h, TAG_TR, "");
>
> print_otag(h, TAG_TD, "c", "foot-date");
> @@ -483,7 +485,9 @@ mdoc_root_pre(const struct roff_meta *me
> mandoc_asprintf(&title, "%s(%s)",
> meta->title, meta->msec);
>
> - t = print_otag(h, TAG_TABLE, "c", "head");
> + t = print_otag(h, TAG_HEADER, "r", "group");
> + print_otag(h, TAG_TABLE, "r?", "doc-pageheader",
> + "aria-label", "manual header line");
> tt = print_otag(h, TAG_TR, "");
>
> print_otag(h, TAG_TD, "c", "head-ltitle");
--
To unsubscribe send an email to tech+unsubscribe@mandoc.bsd.lv
next prev parent reply other threads:[~2022-07-05 16:15 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-28 18:18 [PATCH 0/3] Add HTML landmarks Anna Vyalkova
2022-06-28 18:18 ` [PATCH 1/3] Wrap manual header in the "<header>" tag Anna Vyalkova
2022-07-03 17:24 ` Ingo Schwarze
2022-07-03 18:49 ` Anna Vyalkova
2022-07-03 20:12 ` Ingo Schwarze
2022-07-03 20:51 ` Anna “CyberTailor”
2022-07-05 15:16 ` Ingo Schwarze
2022-07-05 16:15 ` Anna [this message]
2022-07-05 18:45 ` Ingo Schwarze
2022-07-05 19:03 ` Anna
2022-07-05 21:39 ` Ingo Schwarze
2022-06-28 18:18 ` [PATCH 2/3] Wrap manual text in the "<main>" tag Anna Vyalkova
2022-07-03 14:41 ` Ingo Schwarze
2022-06-28 18:18 ` [PATCH 3/3] Wrap manual footer in the "<footer>" tag Anna Vyalkova
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YsRjtD/ia5by8lTz@sysrq.in \
--to=cyber@sysrq.in \
--cc=schwarze@usta.de \
--cc=tech@mandoc.bsd.lv \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).