Kindle Capability Test

1. User Agent

reading...

2. API Availability

API Present?
EventSource (SSE)
WebSocket
fetch
localStorage
sessionStorage
Touch events
Pointer events
CSS transitions

3. Echo Tests (same-origin)

Tests below hit /echo/ws, /echo/sse, /echo/poll on this same origin.

3a. WebSocket Echo

— not started —

3b. SSE Echo

— not started —

3c. Long-Poll Echo

— not started —

4. Key Events

Press any key, hardware page-turn button, or 5-way joystick:

waiting for keypress...
key keyCode code type

5. Secure Context & Crypto

These determine whether crypto.randomUUID() works. x-reader calls it during init — a failure here causes a blank page.

Check Result
isSecureContext
window.crypto present
crypto.getRandomValues
crypto.randomUUID present
crypto.randomUUID() call result

6. x-reader JS Prerequisites

x-reader bundles to an ES2017 IIFE. These JS features must work.

Feature Present?
Promise
Symbol
Proxy
URL constructor
async / await
Arrow functions
Nullish coalescing (??)
Optional chaining (?.)
class syntax
WeakMap
WeakSet
queueMicrotask (Svelte scheduler)
TextEncoder

7. defer Script Loading

x-reader's IIFE uses <script defer> so it runs after the DOM is parsed. If defer is broken the app never mounts (blank page, no error).

Check Result
defer script executed waiting…
DOM ready when defer runs waiting…