Amazon “HTML5” and ebook formats
As I’m currently writing a book using HTML5 and CSS3, I was excited to hear of Amazon’s “Announcing HTML5 Support in Kindle Format 8” press release. There’s been a move from custom formats back towards HTML5, with ePUB recently announcing ePUB 3 will be based on XHTML5 (the XML serialization of HTML5), and it seems pretty obvious future book readers will also have web browsers. I hoped Amazon was upping the ante and allowing straight HTML5/CSS3-based books.
Sadly, the linked “List of supported HTML tags and CSS elements” [sic] indicates that Amazon is just ridin’ that HTML5 bandwagon into marketing BS-land. Here’s a breakdown of Amazon “HTML5”, compared to HTML5 and HTML 4:
Table Key:
- Green: New HTML5 element in Amazon “HTML5”
- Yellow: HTML5 element not in Amazon “HTML5”
- Red: HTML5 element that should be in Amazon “HTML5”, or HTML 4 element that shouldn’t be in :)
| HTML 4 | HTML5 | Amazon “HTML5” | 91 elements | 108 elements | 75 elements |
|---|---|---|
a | a | a |
abbr | abbr | |
acronym | ||
address | address | address |
applet | ||
area | area | |
article | article | |
aside | aside | |
audio | ||
b | b | b |
base | base | |
basefont | ||
bdi | ||
bdo | bdo | |
big | ||
blockquote | blockquote | blockquote |
body | body | body |
br | br | br |
button | button | |
canvas | ||
caption | caption | caption |
center | center | |
cite | cite | cite |
code | code | code |
col | col | col |
colgroup | colgroup | |
command | ||
datalist | ||
dd | dd | dd |
del | del | del |
details | ||
dfn | dfn | dfn |
dir | ||
div | div | div |
dl | dl | dl |
dt | dt | dt |
em | em | em |
embed | ||
fieldset | fieldset | |
figcaption | figcaption | |
figure | figure | |
font | ||
footer | footer | |
form | form | |
frame | ||
frameset | ||
h1 | h1 | h1 |
h2 | h2 | h2 |
h3 | h3 | h3 |
h4 | h4 | h4 |
h5 | h5 | h5 |
h6 | h6 | h6 |
head | head | head |
header | header | |
hgroup | hgroup | |
hr | hr | hr |
html | html | html |
i | i | i |
iframe | iframe | |
img | img | img |
input | input | |
ins | ins | ins |
isindex | ||
kbd | kbd | kbd |
keygen | ||
label | label | |
legend | legend | |
li | li | li |
link | link | link |
map | map | map |
mark | mark | |
menu | menu | menu |
meta | meta | |
meter | ||
nav | nav | |
noframes | ||
noscript | noscript | |
object | object | |
ol | ol | ol |
optgroup | optgroup | |
option | option | |
output | output | |
p | p | p |
param | param | |
pre | pre | pre |
progress | ||
q | q | q |
rp | rp | |
rt | rt | |
ruby | ||
s | s | |
samp | samp | samp |
script | script | |
section | section | |
select | select | |
small | small | small |
source | source | |
span | span | span |
strike | strike | |
strong | strong | strong |
style | style | style |
sub | sub | sub |
summary | summary | |
sup | sup | sup |
table | table | table |
tbody | tbody | tbody |
td | td | td |
textarea | textarea | |
tfoot | tfoot | tfoot |
th | th | th |
thead | thead | thead |
time | time | |
title | title | title |
tr | tr | tr |
track | ||
tt | ||
u | u | u |
ul | ul | ul |
var | var | var |
video | ||
wbr | wbr |
HTML5? Ohrly?? Amazon is missing 33 HTML5 elements (or 35 HTML 4 elements). Claiming it’s HTML5 when they’re missing 30% of HTML5’s elements seems a bit rich. Dropping forms and application-specific elements is understandable, but it’s going to limit book writers and publishers in the future.
I will let someone else do the breakdown on CSS3, but calling this “CSS3 support” is embarrassing. It’s not even CSS 2.1! Of the 95 properties listed, here are the non-CSS 2.1 ones:
background-clipbackground-originborder-radiuscolor-indexdevice-aspect-ratiodevice-heightdevice-widthmonochromeoverflow-xoverflow-y
I also noticed some strange omissions. No background or background-image(!), which makes background-size, background-clip and background-origin completely useless. There’s clip for “clip[ping] an absolutely positioned element”, but no position. They have <rp> and <rb> for ruby text, but no <ruby>.
I guess these features will be “good enough” for many writers and publishers, and it’s great to see SVG support, but I’m still scratching my head why these ebook formats even exist. Apart from @page support (in Opera’s latest dev build, being implemented in WebKit), and some internationalisation support for e.g. CJK text (also being implemented), the web stack already does everything ebook formats do, plus much more (<video>, <audio>, <canvas>…). With the Kindle Fire and iPad it also seems obvious to me that future ebook readers will have web browsers.
Why bother?
If you have any feedback or comments, contact me via Twitter (@boblet) or Google+ (Oli Studholme).

.jp