Now, due at least to the limitations of e-ink, although other commercial factors may be involved, the "ACCESS NetFront" browser is extremely cut down - not too much different though to browsers such as the basic web browser on the Palm Treo and definitely better than most regular cell phones. Because e-ink doesn't erase quickly, pages can't scroll, and graphics animations such as flash or animated GIFs are out of the question.
That does not mean however that the web browser is useless. Far from it. The limitations are a fair price to pay for an always-on EVDO connection! But to get the best value from the browser you really need to write web pages that adapt to it well.
That's what this article is about. The capabilities of and facilities offered by the Kindle web browser.
First, some basic facts. The screen is 600 x 800 pixels at a physical size of 3.6in x 4.8 inches, giving a resolution of 166.66dpi. It only supports 2-bit grey scale (white, light grey, dark grey and black) even though the browser tells the web server that it supports 32bit color! Images are transcoded on the fly by Amazon's proxy, which all traffic goes through (meaning that they could later shut down free internet access if it starts costing them too much).
Now, it has to be said that text on the Kindle looks OK, but with only one font supported in the Browser, it's not going to allow much creativity in page design, especially if you want to offer free eBooks via HTML. The only supported font is Caecilia, which is a slab-serif face. You might be aware of a font called Rockwell - it's in that style. More on Caecilia later. The font comes with only the ISO Latin1 character set glyphs, with bold and/or italic supported as would be expected.
There are a limited number of sizes supported, although interestingly there appears to be a bug in the HTML rendering, because HTML defines 7 font size names for use in CSS: xxsmall, xsmall, small, medium, large, xlarge and xxlarge. These are supposed to map to the font sizes 1 through 7 (as in <font size=7>). However it seems that xsmall and small are the same font size but with marginally different letter spacing, and that all the following sizes are 1 less than they should be. This means that xxlarge is really size 6, with size 7 not being accessible using CSS - only with <font size=7>. This means in effect that 8 sizes of type are supported.
Somewhat annoyingly, the Kindle defaults to an extremely basic mode for the browser, with CSS facilities disabled. This means that if you want to do absolute positioning of page elements, you need to ask the user to switch the browser into "Advanced" mode. Fortunately this isn't too hard to do because it is almost a necessity. This is because Netfront does not honor the "justify" attribute in HTML, meaning that _all_ text is ragged-right. You'll note that the downloadable eBooks on the other hand all support proper justification. On a device that's meant to emulate paper, this is a requirement. There's 500 years of user interface design behind paper books and it's sad to see the Kindle team trying to undo that!
You can ameliorte the ragged right problem by using hyphenation in your pages. You need to pre-process all the text in a page and insert characters at every valid hyphenation point.
Perhaps the most noticable difference between downloaded eBooks and web pages is that the eBooks use Neue Helvetica as their primary font. Almost as noticable is that they allow for an extended character set — for example em-dashes and paired “opening/closing” quotation marks. In the web browser you have to make do with two minus signs and identical quote marks on each end. Fortunately because the browser doesn't support magnification (scaling up the whole page), this turns out to be something that can be worked around by using graphics for the missing glyphs.
The only entity reference I could find which worked, outside of those for the Latin1 characters themselves, was ’. Here's a table of the known Kindle entity references.
Here are some screen shots of the Kindle showing some of the points above. Fortunately the e-ink shows up pretty nicely with a flatbed scanner :-)
Adjacent to the images are links to the original HTML pages which you can try on your Kindle.
What I'm doing for my documents is setting the text using the TeX typesetting system. I created a Caecilia font metric file for TeX and wrote a dvi driver which generates HTML, placing each letter at an absolute position in the page. This looks really good, but has the drawback that the HTML for a multi-page document is huge, so you need to link from one page to the next instead of scrolling down the file using the 'next page' button.
Here are a couple of eBooks I've already converted: