Skip to content

Footnotes bugs 100% reproducible #69

Description

@mramosch

BugReport.zip

I recently went through all the endnotes/footnotes #issues and read the accompanying threads on mobileread and did some testing.

There were a few issues that have been marked as ‘occurring randomly’ but I now traced some of them back to 100% reproducibility on a KOBO Clara BW from 2024.

• All the following observations are happening in the same chapter/file of the respective epub container.
• I took a random epub file from the web where the first chapter contains 4 links to endnotes.
• I changed the first link to spread over the whole paragraph instead of over the superscript [1] only.
• I duplicated the file and renamed the duplicate from myFile.epub to myFile.kepub.epub (both eBooks are attached to this post)
• Both files (epub and kepub) do behave correctly on all eReader systems on iOS that I threw them at e.g. AppleBooks, BookFusion, FileBrowser etc. - ‘correctly’ meaning that the links do not open a pop-up but rather follow the anchor address.
• The epub file DOES work correctly on the KOBO device.

Some General Observations:

• When sideloading both files at the same time via USB cable the epub file resist opening with a ‘DRM protected’ message. I did not further investigate this issue but deleting the kepub file on the device and sideloading the epub file again by replacing the recently sideloaded file in the file manager prompt ‘file does already exist’ solved the problem for the time being. This issue is 100% reproducible.
• The epub file works as expected but of course is not opening any pop-ups.
• The kepub file as expected opens every link as a pop-up with a further navigation link to the endnote section.

Kepub Issues:

• The weirdest one is that although all four links go (via a pop-up) straight to the endnote section, the backlink from endnote 2 always goes back to link [3], all other backlinks behave correctly and go back to their assigned address.
• The first link (the one that spreads over a whole paragraph instead of [1] only) performs some ‘special behavior’. Instead of the whole underlined text acting as a trigger only a part of the whole block (paragraph) accepts a tap. The size of that zone is variable and corresponds exactly with the length of the text in the last line of the paragraph. Tapping somewhere to the right of the last sentence’s final punctuation mark does not trigger the link, regardless of the vertical position of the tap within the paragraph.
• The backlink to this first link however has some serious issues. First of all it opens up a pop-up (like actual links do) and shows a big block of text. That block of text is essentially the text of the back-linked paragraph but spills over until it reaches exactly the start position of the second link (the word ‘Hámlet [2]’ in our case). The pop-up does as usual offer a further backlink to the linked paragraph which eventually brings you back to the original position in the text.
• This backlink issue happens regardless of whether the first link is a whole paragraph or only a superscript [1].

Further Issues:

• Some randomness of taps only triggering links and backlinks sporadically can be attributed to the wobblyness of our fingers. Using a pen (the ones with the big soft wobbly rubber tip) lets you be more precise and did in my case not mis-trigger a single time.
• But I have to mention that in other documents that where supplied by some users here and on mobileread there was an issue, that instead of the arrow-up symbol shown in a kepub only a space and an underscore gets displayed in an epub and links only worked randomly. Well, the solution is not to tap on the underscore or space itself but rather precisely very close to the left of the underscore to trigger the action. With the pen I experienced a 100% hit rate, quite the opposite of what I could manage with my fingers.
• This exact behavior is also found in the two versions of the attached example ebook if you wanna check it out.

Not triggering at all - one last big observation:

Let’s imagine the part of the text where the endnote section is positioned and call it page B. The previous page being page A and the following page being page C.

Some example ePubs that were provided in the forums had an issue that the backlinks from the endnote section did work properly but the actual links didn’t trigger anything.

Now consider a link [1] that is positioned many many pages before the endnote section (which in our example is on page B of the 3 pages A, B and C). Let’s say that the link is on page 2 of a text with 23 pages. Page 21, 22 and 23 are the before mentioned pages A, B and C, just to give them some special names for later reference.

Consider the following Scenario now:

• We are on page B (that being page 22 of the entire text) and are using the backlink in the endnotes to go to page 2, which indeed correctly brings us to link [1] on page 2.
• We are now tapping on link [1] in order to go to the endnotes section on page B, but nothing happens.

Well, actually something does happen under the hood. We are actually brought back to page B but the screen does not get refreshed and it seems that we are still on page 2, but we aren’t.

To prove that just swipe to the right to go to the next page and you will NOT find yourself on page 3 but rather on page C, which is the page after page B.

That confirms to me that
• either the navigation from page 2 to page B (page 22) actually did happen but just wasn’t reflected on the screen.
• or the initial navigation to page 2 didn’t really happen and page 2 was just shown as a kind of overlay and the subsequent swipe gesture just dismisses this overlay and navigates from the underlying page B to page C (or page A if you swipe in the other direction).

So I guess now KOBO has enough to chew on for a while…

Happy coding!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions