Release Subtitle Tools 0.1.0

This commit is contained in:
2026-09-01 12:39:23 +02:00
commit b92793eb82
58 changed files with 9419 additions and 0 deletions
+10
View File
@@ -0,0 +1,10 @@
# Accessibility
The application uses labelled native controls, keyboard-reachable tabs and cue
buttons, visible focus indicators, text alternatives for waveform content, and
light, dark and system themes. Colour is not the only carrier for issue level.
The cue and issue views cap rendered rows to keep navigation responsive while
the complete bounded document remains included in validation and export.
The waveform is an optional visual aid: all timing edits use numeric controls and
do not require pointer input. Reduced-motion preferences disable transitions.
+17
View File
@@ -0,0 +1,17 @@
# Architecture
Subtitle Tools is a relocatable React application with a framework-independent
TypeScript subtitle model. The parser first applies byte/text and line bounds,
then produces one normalized cue model for SRT, WebVTT and ASS. Operations return
new documents instead of mutating parser state. Serializers are format-specific;
cross-format export deliberately exposes its preservation boundary.
Parsing and timing transformations are synchronous in v0.1 and therefore capped
at 4,000,000 UTF-16 units, 250,000 units per physical line and 100,000 cues. The
editor renders at most 10,000 cue rows and 2,000 issue rows, while validation and
export still cover the complete bounded document. Revision comparison is
index-aligned and linear rather than an unbounded semantic diff.
The optional waveform component uses browser-native media decoding, keeps at
most 2,000 peak buckets and accepts no more than 128 MiB or four decoded hours.
It does not run a codec, speech-recognition model or network service.
+15
View File
@@ -0,0 +1,15 @@
# Privacy and security
Subtitle and media files are read only after direct selection and stay in page
memory. No telemetry, analytics, account, upload, external font, codec, model or
other network destination exists. The production policy uses
`connect-src 'self'`; browser tests fail on non-local requests.
Subtitle text is rendered by React as text, not interpreted as HTML. ASS override
codes and WebVTT tags are preserved as inert source. Exports are downloads chosen
by the user. Browser-native media playback and Web Audio decoding inherit browser
codec support and may allocate substantial memory inside the documented bounds.
Validation findings are editorial signals. They are not proof of accessibility,
broadcast conformance, synchronization quality or legal compliance. Cross-format
conversion can discard styles, positioning, regions, comments and metadata.