• ipx-web 1.3.0 Stable

    rays released this 2026-10-23 09:41:57 -07:00 | 9 commits to main since this release

    Fixed

    • An item opens from the keyboard and with a screen reader: its title is a button. The feed list's rows and the Directory's shows are links to a screen reader, the open one marked current (#298).
    • An item's Play, Download and Delete buttons show while the keyboard is on one, as they do under the pointer (#299).
    • A screen reader names an item's read button for what it does, Mark read or Mark unread, not "●" (#300).
    • The player's position slider has a name, and a screen reader reads where you are as a time, "12:30 of 45:00" (#301).
    • Placeholder text is in the theme's own hint colour, readable in every theme, and the search and feed filter boxes have names of their own (#302).
    • A screen reader reads toasts out, and an error stays until you dismiss it with its x; no more than four show at once (#303).
    • Error messages say what to do, for a server error, a lost connection, a file that would not play or a download that failed, in place of the browser's or the server's own words (#304).
    • Text boxes, selects and switches have an edge you can see in every theme, and a box with the keyboard in it has the same ring as every other control (#305, #308).
    • Dialogs are dialogs to a screen reader, named by their heading. The page behind one is out of reach while it is open, and closing it puts the keyboard back where it was (#306).
    • The boxes in Add a feed, Settings, Download latest and OPML are named by their labels, and clicking a label puts the cursor in its box (#307).
    • With reduced motion on, a check for new items still shows: the refresh button pulses and says "Checking for new items", spinners pulse, and toasts and sheets fade in (#310).
    • On a phone, a tapped button, feed or Directory category no longer stays shaded or fanned out as if it were selected (#311).
    • Scrolling to the end of a dialog or the phone's feed list no longer scrolls the page behind it (#312).
    • Cover artwork has a faint edge, so a dark cover stands off a dark theme (#313).
    • The tab bar's corners follow the tabs inside it (#314), and the Directory's covers fan out smoothly (#315).
    • A feed's page drops an error once a later check succeeds, and its item count and when it was last checked stay current, instead of keeping what they were when you opened it (#316).
    • Settings shows iPX's and the page's versions at its foot: the logo's tooltip was out of reach of a keyboard and of a phone (#309).

    Security

    • Open the original, an episode's View in a new tab, the Directory's item links and the v key follow a link only when it is a web address. A podcast's javascript: or data: link was followed as it was (#326).
    • TRUSTED_HEADER names ipx's trusted_header when it is not Cloudflare's, and ipx-web drops that header from anyone but TUNNEL_PEER too. Only Cloudflare's were dropped, so with another header anyone could sign in as anyone (#323).
    Downloads