Conversation
`a` tags can't contain block tags in xhtml, so div in `a` and `p` in `a` cause EPUB2 validation errors, so Ebookmaker now changes `p` and `div` to `span` for EPUB2. I'm not sure why anyone would want to use this markup in a book. fixes #333
fixes #332
handle bock tags in `a`
Refactor boilerplate
- In both in HTML and EPUB, for improved accessibility, added the css rule `a[href] {text-decoration: underline;}` to make sure links are underlined. Previously, we underlined all `a` elements, which ignored prior usage as an link target. Fixes #329.
uses hN element to set the title element of each chunk in the epub.
support time element
Handle inline svg better
underline links
generated by Gemini.
- To balance the long-standing policy of only using "REC" CSS against legal requirements for accessibility, we are significantly relaxing our CSS validation. This means that post-processors should take care to provide "graceful degradation" for CSS that might not be supported in every reading device.
- CSS Grid Layout Level 1 is now supported. Fixes #322. Grid layout should be strongly considered as a replacement for the use of table for layout
- CSS Flexbox Level 1 is now supported. Together with Grid, the should be no reason to use table for layout; going forward, layout tables will need to be converted to more accessible CSS based layout.
- CSS3 Text Decoration properties are now supported. These were the most often used properties removed by ebookmaker as not yet REC.
- The first-letter property is now supported. While this is still not supported in every browser, it is supported by most ebook readers. Use this property to make drop caps in an accessible way.
Relax css validation
Fix empty th
0.14.3 August 12, 2026
This release includes several important updates. There are quite a few issues still waiting to be addressed; they are not forgotten.
- To balance the long-standing policy of only using "REC" CSS against legal requirements for accessibility, we are significantly relaxing our CSS validation. This means that post-processors should take care to provide "graceful degradation" for CSS that might not be supported in every reading device.
- CSS Grid Layout Level 1 is now supported. Fixes #322. Grid layout should be strongly considered as a replacement for the use of table for layout
- CSS Flexbox Level 1 is now supported. Together with Grid, the should be no reason to use table for layout; going forward, layout tables will need to be converted to more accessible CSS based layout.
- CSS3 Text Decoration properties are now supported. These were the most often used properties removed by Ebookmaker as not yet REC.
- The first-letter property is now supported. While this is still not supported in every browser, it is supported by most ebook readers. Use this property to make drop caps in an accessible way. Fixes #310
- Ebookmaker uses the Python module 'CSSUtils' to do CSS validation. It does not support the full grammar used in newer CSS. In particular it does not support the "var()" construct; do not expect this to change anytime soon.
- The current version of CSSUtils does not support the `rem` measurement, so CSS with rem in it will cause errors to be reported and CSS 2.1 rules containing `rem` will be removed. The current version of CSSUtils, that supports `rem`, requires a Python version newer than we have running in production. When our python version is updated, we will update CSSUtils.
- In both in HTML and EPUB, for improved accessibility, added the CSS rule `a[href] {text-decoration: underline;}` to make sure links are underlined. Previously, we underlined all `a` elements, which ignored prior usage as an link target.
- The `aside` element is now allowed. becomes div[class=aside] in epub2.
- handling of inline SVG has been improved.
- the inline SVG element is now handled whether or not it has set the svg namespace.
- inline SVG is changed to standalone files in EPUB2
- inline html5 SVG now adapted for EPUB3, which cares about namespaces
- an error is no longer emitted when rst output is requested from html input
- uses hN element to set the title element of each chunk in the epub. fixes #331
- refactored boilerplate stripping for txt files so it only needs to be done once per book. boilerplate is now detected in the text Parser, instead of in the text Writer.
- support HTML5 `time` element. fixes #332
- `a` tags can't contain block tags in xhtml, so div in `a` and `p` in `a` cause EPUB2 validation errors, so Ebookmaker now changes `p` and `div` occurring in `a` to `span` for EPUB2. I'm not sure why anyone would want to use this markup in a book. Fixes #333
- empty `th` elements are replaced by empty `td` elements for better accessibility. Fixes #315.
rtonsing
reviewed
Aug 12, 2026
| This release includes several important updates. There are quite a few issues still waiting to be addressed; they are not forgotten. | ||
| - To balance the long-standing policy of only using "REC" CSS against legal requirements for accessibility, we are significantly relaxing our CSS validation. This means that post-processors should take care to provide "graceful degradation" for CSS that might not be supported in every reading device. | ||
| - CSS Grid Layout Level 1 is now supported. Fixes #322. Grid layout should be strongly considered as a replacement for the use of table for layout | ||
| - CSS Flexbox Level 1 is now supported. Together with Grid, the should be no reason to use table for layout; going forward, layout tables will need to be converted to more accessible CSS based layout. |
There was a problem hiding this comment.
Suggested change
| - CSS Flexbox Level 1 is now supported. Together with Grid, the should be no reason to use table for layout; going forward, layout tables will need to be converted to more accessible CSS based layout. | |
| - CSS Flexbox Level 1 is now supported. Together with Grid, there should be no reason to use tables for layout; going forward, layout tables will need to be converted to more accessible CSS based layout. |
rtonsing
approved these changes
Aug 12, 2026
windymilla
reviewed
Aug 12, 2026
|
|
||
| - an error is no longer emitted when rst output is requested from html input | ||
|
|
||
| - uses hN element to set the title element of each chunk in the epub. fixes #331 |
Contributor
There was a problem hiding this comment.
Although this is a valuable fix and I have no disagreement with it, it doesn't fix (my intention for) #331
What I was describing in #331 was to make it possible for the PPer to flag a sidenote (either a true sidenote, or a running header at the top of each page describing that portion of the book) to be added to a nav list in the epub navigation document.
Suggest removing the "fixes #331" comment.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
0.14.3 August 12, 2026
This release includes several important updates. There are quite a few issues still waiting to be addressed; they are not forgotten.
To balance the long-standing policy of only using "REC" CSS against legal requirements for accessibility, we are significantly relaxing our CSS validation. This means that post-processors should take care to provide "graceful degradation" for CSS that might not be supported in every reading device.
display:grid#322. Grid layout should be strongly considered as a replacement for the use of table for layoutremmeasurement, so CSS with rem in it will cause errors to be reported and CSS 2.1 rules containingremwill be removed. The current version of CSSUtils, that supportsrem, requires a Python version newer than we have running in production. When our python version is updated, we will update CSSUtils.In both in HTML and EPUB, for improved accessibility, added the CSS rule
a[href] {text-decoration: underline;}to make sure links are underlined. Previously, we underlined allaelements, which ignored prior usage as an link target.The
asideelement is now allowed. becomes div[class=aside] in epub2.handling of inline SVG has been improved.
an error is no longer emitted when rst output is requested from html input
uses hN element to set the title element of each chunk in the epub. fixes Consider adding running headers as a list in epub navigation document #331
refactored boilerplate stripping for txt files so it only needs to be done once per book. boilerplate is now detected in the text Parser, instead of in the text Writer.
support HTML5
timeelement. fixes Accessibility: <time> tag #332atags can't contain block tags in xhtml, so div inaandpinacause EPUB2 validation errors, so Ebookmaker now changespanddivoccurring inatospanfor EPUB2. I'm not sure why anyone would want to use this markup in a book. Fixes Valid HTML5 <p> tag within <a> tags causes a crtical error #333empty
thelements are replaced by emptytdelements for better accessibility. Fixes replace empty <th> elements with <td> elements. #315.0.14.4 August 15, 2026