aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2019-01-11 12:56:42 +0000
committerIngo Schwarze <schwarze@openbsd.org>2019-01-11 12:56:42 +0000
commitee6f1de3309289a39aa90cae26282fb4774fb08a (patch)
tree389d4ad2803e128c8d58759fa9673cc923c4a211
parenta4e1608773e41b082d75ff2cbf2d56d12f5f02a1 (diff)
downloadmandoc-ee6f1de3309289a39aa90cae26282fb4774fb08a.tar.gz
mandoc-ee6f1de3309289a39aa90cae26282fb4774fb08a.tar.zst
mandoc-ee6f1de3309289a39aa90cae26282fb4774fb08a.zip
Remove the HTML title= attributes which harmed accessibility and
violated the principle of separation of content and presentation. Instead, implement the tooltips purely in CSS. Thanks to John Gardner <gardnerjohng at gmail dot com> for suggesting most of the styling in the new ::before rules.
-rw-r--r--html.c8
-rw-r--r--man_html.c12
-rw-r--r--mandoc.css78
-rw-r--r--mandoc_html.39
-rw-r--r--mdoc_html.c86
-rw-r--r--regress/man/IP/literal.out_html4
-rw-r--r--regress/man/SH/paragraph.out_html4
-rw-r--r--regress/man/SS/paragraph.out_html4
-rw-r--r--regress/man/SY/literal.out_html4
-rw-r--r--regress/mdoc/Rs/paragraph.out_html17
-rw-r--r--regress/mdoc/Sh/paragraph.out_html4
11 files changed, 146 insertions, 84 deletions
diff --git a/html.c b/html.c
index 55d5c99f..cc1bc394 100644
--- a/html.c
+++ b/html.c
@@ -1,4 +1,4 @@
-/* $Id: html.c,v 1.250 2019/01/07 07:26:29 schwarze Exp $ */
+/* $Id: html.c,v 1.251 2019/01/11 12:56:42 schwarze Exp $ */
/*
* Copyright (c) 2008-2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2011-2015, 2017-2019 Ingo Schwarze <schwarze@openbsd.org>
@@ -657,12 +657,6 @@ print_otag(struct html *h, enum htmltag tag, const char *fmt, ...)
print_encode(h, arg1, NULL, 1);
fmt++;
break;
- case 'T':
- print_encode(h, arg1, NULL, 1);
- print_word(h, "\" title=\"");
- print_encode(h, arg1, NULL, 1);
- fmt++;
- break;
default:
print_encode(h, arg1, NULL, 1);
break;
diff --git a/man_html.c b/man_html.c
index 8b4dd945..e11ed0e6 100644
--- a/man_html.c
+++ b/man_html.c
@@ -1,4 +1,4 @@
-/* $Id: man_html.c,v 1.167 2019/01/07 07:26:29 schwarze Exp $ */
+/* $Id: man_html.c,v 1.168 2019/01/11 12:56:43 schwarze Exp $ */
/*
* Copyright (c) 2008-2012, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2013-2015, 2017-2019 Ingo Schwarze <schwarze@openbsd.org>
@@ -299,9 +299,9 @@ man_SH_pre(MAN_ARGS)
case ROFFT_HEAD:
id = html_make_id(n, 1);
if (n->tok == MAN_SH)
- print_otag(h, TAG_H1, "cTi", "Sh", id);
+ print_otag(h, TAG_H1, "ci", "Sh", id);
else
- print_otag(h, TAG_H2, "cTi", "Ss", id);
+ print_otag(h, TAG_H2, "ci", "Ss", id);
if (id != NULL)
print_otag(h, TAG_A, "chR", "permalink", id);
break;
@@ -513,7 +513,7 @@ man_SY_pre(MAN_ARGS)
break;
case ROFFT_HEAD:
print_otag(h, TAG_TD, "");
- print_otag(h, TAG_CODE, "cT", "Nm");
+ print_otag(h, TAG_CODE, "c", "Nm");
break;
case ROFFT_BODY:
print_otag(h, TAG_TD, "");
@@ -535,10 +535,10 @@ man_UR_pre(MAN_ARGS)
assert(n->child->type == ROFFT_TEXT);
if (n->tok == MAN_MT) {
mandoc_asprintf(&cp, "mailto:%s", n->child->string);
- print_otag(h, TAG_A, "cTh", "Mt", cp);
+ print_otag(h, TAG_A, "ch", "Mt", cp);
free(cp);
} else
- print_otag(h, TAG_A, "cTh", "Lk", n->child->string);
+ print_otag(h, TAG_A, "ch", "Lk", n->child->string);
}
assert(n->next->type == ROFFT_BODY);
diff --git a/mandoc.css b/mandoc.css
index db17e9de..9526c74b 100644
--- a/mandoc.css
+++ b/mandoc.css
@@ -1,4 +1,4 @@
-/* $Id: mandoc.css,v 1.43 2019/01/10 07:40:10 schwarze Exp $ */
+/* $Id: mandoc.css,v 1.44 2019/01/11 12:56:43 schwarze Exp $ */
/*
* Standard style sheet for mandoc(1) -Thtml and man.cgi(8).
*
@@ -65,7 +65,7 @@ td.foot-os { text-align: right; }
.manual-text {
margin-left: 3.8em; }
-.Nd { display: inline; }
+.Nd { }
.Sh { margin-top: 1.2em;
margin-bottom: 0.6em;
margin-left: -3.2em;
@@ -254,6 +254,80 @@ a.In { }
font-weight: normal;
font-family: monospace; }
+/* Tooltip support. */
+
+.Sh, .Ss { position: relative; }
+.An, .Ar, .Cd, .Cm, .Dv, .Em, .Er, .Ev, .Fa, .Fd, .Fl, .Fn, .Ft,
+.Ic, code.In, .Lb, .Lk, .Ms, .Mt, .Nd, code.Nm, .Pa, .Rs,
+.St, .Sx, .Sy, .Va, .Vt, .Xr {
+ display: inline-block;
+ position: relative; }
+
+.An::before { content: "An"; }
+.Ar::before { content: "Ar"; }
+.Cd::before { content: "Cd"; }
+.Cm::before { content: "Cm"; }
+.Dv::before { content: "Dv"; }
+.Em::before { content: "Em"; }
+.Er::before { content: "Er"; }
+.Ev::before { content: "Ev"; }
+.Fa::before { content: "Fa"; }
+.Fd::before { content: "Fd"; }
+.Fl::before { content: "Fl"; }
+.Fn::before { content: "Fn"; }
+.Ft::before { content: "Ft"; }
+.Ic::before { content: "Ic"; }
+code.In::before { content: "In"; }
+.Lb::before { content: "Lb"; }
+.Lk::before { content: "Lk"; }
+.Ms::before { content: "Ms"; }
+.Mt::before { content: "Mt"; }
+.Nd::before { content: "Nd"; }
+code.Nm::before { content: "Nm"; }
+.Pa::before { content: "Pa"; }
+.Rs::before { content: "Rs"; }
+.Sh::before { content: "Sh"; }
+.Ss::before { content: "Ss"; }
+.St::before { content: "St"; }
+.Sx::before { content: "Sx"; }
+.Sy::before { content: "Sy"; }
+.Va::before { content: "Va"; }
+.Vt::before { content: "Vt"; }
+.Xr::before { content: "Xr"; }
+
+.An::before, .Ar::before, .Cd::before, .Cm::before,
+.Dv::before, .Em::before, .Er::before, .Ev::before,
+.Fa::before, .Fd::before, .Fl::before, .Fn::before, .Ft::before,
+.Ic::before, code.In::before, .Lb::before, .Lk::before,
+.Ms::before, .Mt::before, .Nd::before, code.Nm::before,
+.Pa::before, .Rs::before,
+.Sh::before, .Ss::before, .St::before, .Sx::before, .Sy::before,
+.Va::before, .Vt::before, .Xr::before {
+ opacity: 0;
+ transition: .15s ease opacity;
+ pointer-events: none;
+ position: absolute;
+ bottom: 100%;
+ box-shadow: 0 0 .35em #000;
+ padding: .15em .25em;
+ white-space: nowrap;
+ font-family: Helvetica,Arial,sans-serif;
+ font-style: normal;
+ font-weight: bold;
+ color: black;
+ background: #fff; }
+.An:hover::before, .Ar:hover::before, .Cd:hover::before, .Cm:hover::before,
+.Dv:hover::before, .Em:hover::before, .Er:hover::before, .Ev:hover::before,
+.Fa:hover::before, .Fd:hover::before, .Fl:hover::before, .Fn:hover::before,
+.Ft:hover::before, .Ic:hover::before, code.In:hover::before,
+.Lb:hover::before, .Lk:hover::before, .Ms:hover::before, .Mt:hover::before,
+.Nd:hover::before, code.Nm:hover::before, .Pa:hover::before,
+.Rs:hover::before, .Sh:hover::before, .Ss:hover::before, .St:hover::before,
+.Sx:hover::before, .Sy:hover::before, .Va:hover::before, .Vt:hover::before,
+.Xr:hover::before {
+ opacity: 1;
+ pointer-events: inherit; }
+
/* Overrides to avoid excessive margins on small devices. */
@media (max-width: 37.5em) {
diff --git a/mandoc_html.3 b/mandoc_html.3
index 9e922915..32407574 100644
--- a/mandoc_html.3
+++ b/mandoc_html.3
@@ -1,4 +1,4 @@
-.\" $Id: mandoc_html.3,v 1.18 2018/11/26 01:38:23 schwarze Exp $
+.\" $Id: mandoc_html.3,v 1.19 2019/01/11 12:56:43 schwarze Exp $
.\"
.\" Copyright (c) 2014, 2017, 2018 Ingo Schwarze <schwarze@openbsd.org>
.\"
@@ -14,7 +14,7 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd $Mdocdate: November 26 2018 $
+.Dd $Mdocdate: January 11 2019 $
.Dt MANDOC_HTML 3
.Os
.Sh NAME
@@ -167,11 +167,6 @@ the respective attribute is not written.
Print a
.Cm class
attribute.
-This attribute letter can optionally be followed by the modifier letter
-.Cm T .
-In that case, a
-.Cm title
-attribute with the same value is also printed.
.It Cm h
Print a
.Cm href
diff --git a/mdoc_html.c b/mdoc_html.c
index 08a2dc82..fe62b80a 100644
--- a/mdoc_html.c
+++ b/mdoc_html.c
@@ -1,4 +1,4 @@
-/* $Id: mdoc_html.c,v 1.324 2019/01/10 07:40:10 schwarze Exp $ */
+/* $Id: mdoc_html.c,v 1.325 2019/01/11 12:56:43 schwarze Exp $ */
/*
* Copyright (c) 2008-2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2014,2015,2016,2017,2018 Ingo Schwarze <schwarze@openbsd.org>
@@ -573,7 +573,7 @@ mdoc_sh_pre(MDOC_ARGS)
break;
case ROFFT_HEAD:
id = html_make_id(n, 1);
- print_otag(h, TAG_H1, "cTi", "Sh", id);
+ print_otag(h, TAG_H1, "ci", "Sh", id);
if (id != NULL)
print_otag(h, TAG_A, "chR", "permalink", id);
break;
@@ -605,7 +605,7 @@ mdoc_ss_pre(MDOC_ARGS)
}
id = html_make_id(n, 1);
- print_otag(h, TAG_H2, "cTi", "Ss", id);
+ print_otag(h, TAG_H2, "ci", "Ss", id);
if (id != NULL)
print_otag(h, TAG_A, "chR", "permalink", id);
return 1;
@@ -618,7 +618,7 @@ mdoc_fl_pre(MDOC_ARGS)
if ((id = cond_id(n)) != NULL)
print_otag(h, TAG_A, "chR", "permalink", id);
- print_otag(h, TAG_CODE, "cTi", "Fl", id);
+ print_otag(h, TAG_CODE, "ci", "Fl", id);
print_text(h, "\\-");
if (!(n->child == NULL &&
@@ -637,7 +637,7 @@ mdoc_cm_pre(MDOC_ARGS)
if ((id = cond_id(n)) != NULL)
print_otag(h, TAG_A, "chR", "permalink", id);
- print_otag(h, TAG_CODE, "cTi", "Cm", id);
+ print_otag(h, TAG_CODE, "ci", "Cm", id);
return 1;
}
@@ -657,7 +657,7 @@ mdoc_nd_pre(MDOC_ARGS)
}
print_text(h, "\\(em");
/* Cannot use TAG_SPAN because it may contain blocks. */
- print_otag(h, TAG_DIV, "cT", "Nd");
+ print_otag(h, TAG_DIV, "c", "Nd");
return 1;
}
@@ -671,7 +671,7 @@ mdoc_nm_pre(MDOC_ARGS)
print_otag(h, TAG_TD, "");
/* FALLTHROUGH */
case ROFFT_ELEM:
- print_otag(h, TAG_CODE, "cT", "Nm");
+ print_otag(h, TAG_CODE, "c", "Nm");
return 1;
case ROFFT_BODY:
print_otag(h, TAG_TD, "");
@@ -693,11 +693,11 @@ mdoc_xr_pre(MDOC_ARGS)
return 0;
if (h->base_man1)
- print_otag(h, TAG_A, "cThM", "Xr",
+ print_otag(h, TAG_A, "chM", "Xr",
n->child->string, n->child->next == NULL ?
NULL : n->child->next->string);
else
- print_otag(h, TAG_A, "cT", "Xr");
+ print_otag(h, TAG_A, "c", "Xr");
n = n->child;
print_text(h, n->string);
@@ -726,7 +726,7 @@ mdoc_ns_pre(MDOC_ARGS)
static int
mdoc_ar_pre(MDOC_ARGS)
{
- print_otag(h, TAG_VAR, "cT", "Ar");
+ print_otag(h, TAG_VAR, "c", "Ar");
return 1;
}
@@ -898,14 +898,14 @@ mdoc_ex_pre(MDOC_ARGS)
static int
mdoc_st_pre(MDOC_ARGS)
{
- print_otag(h, TAG_SPAN, "cT", "St");
+ print_otag(h, TAG_SPAN, "c", "St");
return 1;
}
static int
mdoc_em_pre(MDOC_ARGS)
{
- print_otag(h, TAG_I, "cT", "Em");
+ print_otag(h, TAG_I, "c", "Em");
return 1;
}
@@ -935,7 +935,7 @@ mdoc_sx_pre(MDOC_ARGS)
char *id;
id = html_make_id(n, 0);
- print_otag(h, TAG_A, "cThR", "Sx", id);
+ print_otag(h, TAG_A, "chR", "Sx", id);
free(id);
return 1;
}
@@ -987,7 +987,7 @@ mdoc_bd_pre(MDOC_ARGS)
static int
mdoc_pa_pre(MDOC_ARGS)
{
- print_otag(h, TAG_SPAN, "cT", "Pa");
+ print_otag(h, TAG_SPAN, "c", "Pa");
return 1;
}
@@ -1018,7 +1018,7 @@ mdoc_an_pre(MDOC_ARGS)
if (n->sec == SEC_AUTHORS && ! (h->flags & HTML_NOSPLIT))
h->flags |= HTML_SPLIT;
- print_otag(h, TAG_SPAN, "cT", "An");
+ print_otag(h, TAG_SPAN, "c", "An");
return 1;
}
@@ -1026,7 +1026,7 @@ static int
mdoc_cd_pre(MDOC_ARGS)
{
synopsis_pre(h, n);
- print_otag(h, TAG_CODE, "cT", "Cd");
+ print_otag(h, TAG_CODE, "c", "Cd");
return 1;
}
@@ -1037,7 +1037,7 @@ mdoc_dv_pre(MDOC_ARGS)
if ((id = cond_id(n)) != NULL)
print_otag(h, TAG_A, "chR", "permalink", id);
- print_otag(h, TAG_CODE, "cTi", "Dv", id);
+ print_otag(h, TAG_CODE, "ci", "Dv", id);
return 1;
}
@@ -1048,7 +1048,7 @@ mdoc_ev_pre(MDOC_ARGS)
if ((id = cond_id(n)) != NULL)
print_otag(h, TAG_A, "chR", "permalink", id);
- print_otag(h, TAG_CODE, "cTi", "Ev", id);
+ print_otag(h, TAG_CODE, "ci", "Ev", id);
return 1;
}
@@ -1065,7 +1065,7 @@ mdoc_er_pre(MDOC_ARGS)
if (id != NULL)
print_otag(h, TAG_A, "chR", "permalink", id);
- print_otag(h, TAG_CODE, "cTi", "Er", id);
+ print_otag(h, TAG_CODE, "ci", "Er", id);
return 1;
}
@@ -1076,12 +1076,12 @@ mdoc_fa_pre(MDOC_ARGS)
struct tag *t;
if (n->parent->tok != MDOC_Fo) {
- print_otag(h, TAG_VAR, "cT", "Fa");
+ print_otag(h, TAG_VAR, "c", "Fa");
return 1;
}
for (nn = n->child; nn; nn = nn->next) {
- t = print_otag(h, TAG_VAR, "cT", "Fa");
+ t = print_otag(h, TAG_VAR, "c", "Fa");
print_text(h, nn->string);
print_tagq(h, t);
if (nn->next) {
@@ -1112,11 +1112,11 @@ mdoc_fd_pre(MDOC_ARGS)
assert(n->type == ROFFT_TEXT);
if (strcmp(n->string, "#include")) {
- print_otag(h, TAG_CODE, "cT", "Fd");
+ print_otag(h, TAG_CODE, "c", "Fd");
return 1;
}
- print_otag(h, TAG_CODE, "cT", "In");
+ print_otag(h, TAG_CODE, "c", "In");
print_text(h, n->string);
if (NULL != (n = n->next)) {
@@ -1130,10 +1130,10 @@ mdoc_fd_pre(MDOC_ARGS)
cp = strchr(buf, '\0') - 1;
if (cp >= buf && (*cp == '>' || *cp == '"'))
*cp = '\0';
- t = print_otag(h, TAG_A, "cThI", "In", buf);
+ t = print_otag(h, TAG_A, "chI", "In", buf);
free(buf);
} else
- t = print_otag(h, TAG_A, "cT", "In");
+ t = print_otag(h, TAG_A, "c", "In");
print_text(h, n->string);
print_tagq(h, t);
@@ -1160,7 +1160,7 @@ mdoc_vt_pre(MDOC_ARGS)
} else if (n->type == ROFFT_HEAD)
return 0;
- print_otag(h, TAG_VAR, "cT", "Vt");
+ print_otag(h, TAG_VAR, "c", "Vt");
return 1;
}
@@ -1168,7 +1168,7 @@ static int
mdoc_ft_pre(MDOC_ARGS)
{
synopsis_pre(h, n);
- print_otag(h, TAG_VAR, "cT", "Ft");
+ print_otag(h, TAG_VAR, "c", "Ft");
return 1;
}
@@ -1189,7 +1189,7 @@ mdoc_fn_pre(MDOC_ARGS)
ep = strchr(sp, ' ');
if (NULL != ep) {
- t = print_otag(h, TAG_VAR, "cT", "Ft");
+ t = print_otag(h, TAG_VAR, "c", "Ft");
while (ep) {
sz = MIN((int)(ep - sp), BUFSIZ - 1);
@@ -1202,7 +1202,7 @@ mdoc_fn_pre(MDOC_ARGS)
print_tagq(h, t);
}
- t = print_otag(h, TAG_CODE, "cT", "Fn");
+ t = print_otag(h, TAG_CODE, "c", "Fn");
if (sp)
print_text(h, sp);
@@ -1215,10 +1215,10 @@ mdoc_fn_pre(MDOC_ARGS)
for (n = n->child->next; n; n = n->next) {
if (NODE_SYNPRETTY & n->flags)
- t = print_otag(h, TAG_VAR, "cTs", "Fa",
+ t = print_otag(h, TAG_VAR, "cs", "Fa",
"white-space", "nowrap");
else
- t = print_otag(h, TAG_VAR, "cT", "Fa");
+ t = print_otag(h, TAG_VAR, "c", "Fa");
print_text(h, n->string);
print_tagq(h, t);
if (n->next) {
@@ -1291,7 +1291,7 @@ mdoc_lk_pre(MDOC_ARGS)
descr = link->next;
if (descr == punct)
descr = link; /* no text */
- t = print_otag(h, TAG_A, "cTh", "Lk", link->string);
+ t = print_otag(h, TAG_A, "ch", "Lk", link->string);
do {
if (descr->flags & (NODE_DELIMC | NODE_DELIMO))
h->flags |= HTML_NOSPACE;
@@ -1319,7 +1319,7 @@ mdoc_mt_pre(MDOC_ARGS)
assert(n->type == ROFFT_TEXT);
mandoc_asprintf(&cp, "mailto:%s", n->string);
- t = print_otag(h, TAG_A, "cTh", "Mt", cp);
+ t = print_otag(h, TAG_A, "ch", "Mt", cp);
print_text(h, n->string);
print_tagq(h, t);
free(cp);
@@ -1347,7 +1347,7 @@ mdoc_fo_pre(MDOC_ARGS)
return 0;
assert(n->child->string);
- t = print_otag(h, TAG_CODE, "cT", "Fn");
+ t = print_otag(h, TAG_CODE, "c", "Fn");
print_text(h, n->child->string);
print_tagq(h, t);
return 0;
@@ -1371,7 +1371,7 @@ mdoc_in_pre(MDOC_ARGS)
struct tag *t;
synopsis_pre(h, n);
- print_otag(h, TAG_CODE, "cT", "In");
+ print_otag(h, TAG_CODE, "c", "In");
/*
* The first argument of the `In' gets special treatment as
@@ -1390,9 +1390,9 @@ mdoc_in_pre(MDOC_ARGS)
assert(n->type == ROFFT_TEXT);
if (h->base_includes)
- t = print_otag(h, TAG_A, "cThI", "In", n->string);
+ t = print_otag(h, TAG_A, "chI", "In", n->string);
else
- t = print_otag(h, TAG_A, "cT", "In");
+ t = print_otag(h, TAG_A, "c", "In");
print_text(h, n->string);
print_tagq(h, t);
@@ -1417,14 +1417,14 @@ mdoc_ic_pre(MDOC_ARGS)
if ((id = cond_id(n)) != NULL)
print_otag(h, TAG_A, "chR", "permalink", id);
- print_otag(h, TAG_CODE, "cTi", "Ic", id);
+ print_otag(h, TAG_CODE, "ci", "Ic", id);
return 1;
}
static int
mdoc_va_pre(MDOC_ARGS)
{
- print_otag(h, TAG_VAR, "cT", "Va");
+ print_otag(h, TAG_VAR, "c", "Va");
return 1;
}
@@ -1476,7 +1476,7 @@ mdoc_ms_pre(MDOC_ARGS)
if ((id = cond_id(n)) != NULL)
print_otag(h, TAG_A, "chR", "permalink", id);
- print_otag(h, TAG_SPAN, "cTi", "Ms", id);
+ print_otag(h, TAG_SPAN, "ci", "Ms", id);
return 1;
}
@@ -1509,7 +1509,7 @@ mdoc_rs_pre(MDOC_ARGS)
case ROFFT_BODY:
if (n->sec == SEC_SEE_ALSO)
print_otag(h, TAG_P, "c", "Pp");
- print_otag(h, TAG_CITE, "cT", "Rs");
+ print_otag(h, TAG_CITE, "c", "Rs");
break;
default:
abort();
@@ -1542,7 +1542,7 @@ mdoc_li_pre(MDOC_ARGS)
static int
mdoc_sy_pre(MDOC_ARGS)
{
- print_otag(h, TAG_B, "cT", "Sy");
+ print_otag(h, TAG_B, "c", "Sy");
return 1;
}
@@ -1552,7 +1552,7 @@ mdoc_lb_pre(MDOC_ARGS)
if (SEC_LIBRARY == n->sec && NODE_LINE & n->flags && n->prev)
print_otag(h, TAG_BR, "");
- print_otag(h, TAG_SPAN, "cT", "Lb");
+ print_otag(h, TAG_SPAN, "c", "Lb");
return 1;
}
diff --git a/regress/man/IP/literal.out_html b/regress/man/IP/literal.out_html
index ae90758b..844eb1dd 100644
--- a/regress/man/IP/literal.out_html
+++ b/regress/man/IP/literal.out_html
@@ -24,7 +24,7 @@ literal
paragraph
</pre>
regular text
-<h2 class="Ss" title="Ss" id="literal_into_indented_paragraph"><a class="permalink" href="#literal_into_indented_paragraph">literal
+<h2 class="Ss" id="literal_into_indented_paragraph"><a class="permalink" href="#literal_into_indented_paragraph">literal
into indented paragraph</a></h2>
regular text
<pre>
@@ -42,7 +42,7 @@ text
indented regular text</dd>
</dl>
<p class="Pp">new regular paragraph</p>
-<h2 class="Ss" title="Ss" id="literal_out_of_indented_paragraph"><a class="permalink" href="#literal_out_of_indented_paragraph">literal
+<h2 class="Ss" id="literal_out_of_indented_paragraph"><a class="permalink" href="#literal_out_of_indented_paragraph">literal
out of indented paragraph</a></h2>
regular text
<dl class="Bl-tag">
diff --git a/regress/man/SH/paragraph.out_html b/regress/man/SH/paragraph.out_html
index 5aef80e2..49627f19 100644
--- a/regress/man/SH/paragraph.out_html
+++ b/regress/man/SH/paragraph.out_html
@@ -1,6 +1,6 @@
BEGINTEST
-<h1 class="Sh" title="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
+<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
This text immediately follows a section header.
<p class="Pp">This is a paragraph.</p>
-<h1 class="Sh" title="Sh" id="EXAMPLES"><a class="permalink" href="#EXAMPLES">EXAMPLES</a></h1>
+<h1 class="Sh" id="EXAMPLES"><a class="permalink" href="#EXAMPLES">EXAMPLES</a></h1>
ENDTEST
diff --git a/regress/man/SS/paragraph.out_html b/regress/man/SS/paragraph.out_html
index e36f2a06..bc803f86 100644
--- a/regress/man/SS/paragraph.out_html
+++ b/regress/man/SS/paragraph.out_html
@@ -1,8 +1,8 @@
BEGINTEST
-<h2 class="Ss" title="Ss" id="First_subsection"><a class="permalink" href="#First_subsection">First
+<h2 class="Ss" id="First_subsection"><a class="permalink" href="#First_subsection">First
subsection</a></h2>
This text immediately follows a subsection header.
<p class="Pp">This is a paragraph.</p>
-<h2 class="Ss" title="Ss" id="Second_subsection"><a class="permalink" href="#Second_subsection">Second
+<h2 class="Ss" id="Second_subsection"><a class="permalink" href="#Second_subsection">Second
subsection</a></h2>
ENDTEST
diff --git a/regress/man/SY/literal.out_html b/regress/man/SY/literal.out_html
index b1f378cf..5daf74ef 100644
--- a/regress/man/SY/literal.out_html
+++ b/regress/man/SY/literal.out_html
@@ -3,7 +3,7 @@ BEGINTEST
initial regular text
<table class="Nm">
<tr>
- <td><code class="Nm" title="Nm">command</code></td>
+ <td><code class="Nm">command</code></td>
<td><i>arguments</i></td>
</tr>
</table>
@@ -14,7 +14,7 @@ before display
</pre>
<table class="Nm">
<tr>
- <td><code class="Nm" title="Nm">command</code></td>
+ <td><code class="Nm">command</code></td>
<td>
<pre>
<i>arguments</i>
diff --git a/regress/mdoc/Rs/paragraph.out_html b/regress/mdoc/Rs/paragraph.out_html
index 19e9362c..ab2575e5 100644
--- a/regress/mdoc/Rs/paragraph.out_html
+++ b/regress/mdoc/Rs/paragraph.out_html
@@ -1,17 +1,16 @@
BEGINTEST
<br/>
-initial reference: <cite class="Rs" title="Rs"><span class="RsA">author
- name</span>, <i class="RsB">book title</i>.</cite>
-<p class="Pp">in a paragraph:
- <cite class="Rs" title="Rs"><span class="RsA">another author</span>,
- <i class="RsB">another book</i>.</cite></p>
-<h1 class="Sh" title="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
+initial reference: <cite class="Rs"><span class="RsA">author name</span>,
+ <i class="RsB">book title</i>.</cite>
+<p class="Pp">in a paragraph: <cite class="Rs"><span class="RsA">another
+ author</span>, <i class="RsB">another book</i>.</cite></p>
+<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
ALSO</a></h1>
initial reference:
-<p class="Pp"><cite class="Rs" title="Rs"><span class="RsA">author name</span>,
+<p class="Pp"><cite class="Rs"><span class="RsA">author name</span>,
<i class="RsB">book title</i>.</cite></p>
<p class="Pp">in a paragraph:</p>
-<p class="Pp"><cite class="Rs" title="Rs"><span class="RsA">another
- author</span>, <i class="RsB">another book</i>.</cite></p>
+<p class="Pp"><cite class="Rs"><span class="RsA">another author</span>,
+ <i class="RsB">another book</i>.</cite></p>
<pre>
ENDTEST
diff --git a/regress/mdoc/Sh/paragraph.out_html b/regress/mdoc/Sh/paragraph.out_html
index 3eeb9fe8..7d4f0d40 100644
--- a/regress/mdoc/Sh/paragraph.out_html
+++ b/regress/mdoc/Sh/paragraph.out_html
@@ -1,7 +1,7 @@
BEGINTEST
<p class="Pp">descriptive text</p>
-<h2 class="Ss" title="Ss" id="Subsection"><a class="permalink" href="#Subsection">Subsection</a></h2>
+<h2 class="Ss" id="Subsection"><a class="permalink" href="#Subsection">Subsection</a></h2>
initial subsection text
<p class="Pp">subsection paragraph</p>
-<h1 class="Sh" title="Sh" id="EXAMPLES"><a class="permalink" href="#EXAMPLES">EXAMPLES</a></h1>
+<h1 class="Sh" id="EXAMPLES"><a class="permalink" href="#EXAMPLES">EXAMPLES</a></h1>
ENDTEST