emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: TEC <tecosaur@gmail.com>
To: org-mode-email <emacs-orgmode@gnu.org>
Subject: W3C violations in Org's HTML export
Date: Sat, 24 Oct 2020 03:04:22 +0800	[thread overview]
Message-ID: <87sga4914t.fsf@gmail.com> (raw)

Hi everyone,

In developing my take on the Org website and my coFig file, it has 
come
to my attention that there seem to be a few W3C violations in the 
HTML
export.

I always export with these settings,
which may affect some of the items below.
#+begin_src emacs-lisp
(setq org-html-doctype "html5"
      org-html-html5-fancy t)
#+end_src

* Error: Element p not allowed as child of element h2 in this 
  context
  Org currently seems to put a p.subtitle inside the heading.
  This violates the "phrasing content" restriction.
  https://html.spec.whatwg.org/multipage/sections.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements

** Suggestion
   Make the subtitle an independent element, is can still be a
   p.subtitle, just not /inside/ the h2 title

* Warning: The type attribute is unnecessary for JavaScript 
  resources.
  This seems to be from the '<script type="text/javascript">' code
  highlighting script.

** Suggestion
   Remove the ' type="text/javascript"' part of that.

* Error: Attribute alt not allowed on element object at this 
  point.
  This occurs when one has an svg figure, and one wishes to add 
  alt text
  (good for accessibility). This is of course applied to the 
  <object
  type="image/svg+xml">.
  
  What's interesting here is that the benefit of using an <object> 
  over
  an <img> for SVGs seems to basically be that it allows for a 
  raster
  fallback (with the downside that it is downloaded even when not
  needed). However... if we're using HTML5, the <picture> element 
  exists
  for exactly this case, and provides a better implementation of
  fallbacks. Even if one is not using HTML5, I don't see any way 
  that
  Org actually makes use of the potential for a raster fallback 
  ...
  raising the question of why an <object> is used over <img> in 
  the
  first place. It appears that browser support for SVGs in <img> 
  tags
  was originally sketchy, however that issue seems to have bee 
  long
  since resolved: https://caniuse.com/svg-img

** Suggestion
   Switch <object> to <img> for SVGs, if Org does add a mechanism 
   for
   defining fallback images in the future, use <picture> with 
   HTML5

* Error: Duplicate ID org0424ed6.
  Clearly, this can happen. I'm not sure how.
  I'd like to draw attention to this email I sent a while ago 
  (excuse
  the mangled start)
  https://orgmode.org/list/E1jxAjq-0004Dk-LH@lists.gnu.org/

* Error: Character reference expands to a control character 
  (U+0002).
  I have no idea where this is coming from, or why it's there --- 
  but it
  is, and it's not alone:
  + Error: Character reference expands to a control character 
  (U+001d).
  + Error: Character reference expands to a control character 
  (U+001f).
  + Error: Character reference expands to a control character 
  (U+0016).
  + Error: Character reference expands to a control character 
  (U+000f).
  + Warning: Document uses the Unicode Private Use Area(s), which 
  should
    not be used in publicly exchanged documents. (Charmod C073)
  + Error: Character reference expands to a control character 
  (U+001b).

  I suspect this may be htmlize, but I'm not sure, and it's 
  Org-related,
  so I'll include it.

* (not an error) Difficulty in 'wrapping' sections
  It's quite reasonable (IMO) to want to wrap a (sub*)section in a
  certain element, such as a link. Indeed I've wanted to do this 
  to
  create clickable 'cards' on the homepage of my org website 
  revamp.
  Unfortunately there doesn't seem to be any property like 
  :HTML_WRAP:
  etc. that can be applied, forcing me to try this:

  #+begin_src org
  ,** Features
  @@html:<a href="features.html">@@
  [[file:resources/img/stars.svg]]

  Delve into the possibilities.
  @@html:</a>@@
  #+end_src

  This produces the following errors:
  + Error: End tag p seen, but there were open elements.
  + Error: Unclosed element a.
  + Error: End tag a violates nesting rules.
  + Fatal Error: Cannot recover after last error. Any further 
  errors
    will be ignored.

  It would be good to have a way to do this that doesn't cause W3C
  issues.

That's all that I could see on a first glance. I'm hoping that
documenting these issues here will be the first step to solving 
them.

To identify these issues, I applied https://validator.w3.org/ to
https://orgmode.tecosaur.com/ and 
https://tecosaur.github.io/emacs-config/config.html

All the best,

Timothy.


             reply	other threads:[~2020-10-23 19:47 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-23 19:04 TEC [this message]
2020-10-24 11:28 ` W3C violations in Org's HTML export Bastien
2020-12-17 17:55 ` TEC
2020-12-20 17:11   ` Bastien
2021-04-30  8:27 ` Bastien
2021-04-30  8:57   ` Timothy
2021-04-30 11:37 ` Bruce D'Arcus

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

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87sga4914t.fsf@gmail.com \
    --to=tecosaur@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    /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.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).