Skip to main content

Writing-system legibility

The shared evaluator supports the MapLibre-style is-supported-script predicate. It reports whether the current simple text renderer is expected to preserve the input's legibility. Native,WASM and shared scripts use the same policy. See the official syntax.

map.setPaintProperty('places','circle-radius',
  ['case',['is-supported-script',['get','label']],24,8]);
map.setFilter('places',['is-supported-script',['get','label']]);
await map.sqs.flush({render:true});

Simple Latin/Greek/Cyrillic,CJK,precomposed Japanese/Korean characters and common punctuation return true; empty strings also return true. RTL,Indic and other complex scripts,combining marks,joining/directional controls and unknown ranges conservatively return false. This checks shaping capability, not complete glyph coverage of a selected font. It does not install fonts. Complex shaping/bidirectional layout,mixed images/text and line labels remain pending.

Inputs must be strings; UTF8 scanning consumes the existing evaluation budget. Paint,layer filters and source/rendered-query filters retain their existing error/atomicity rules. False is a normal result,not a source-load failure. Use it to select a legible fallback or exclude text requiring unsupported shaping.

The complete HTML includes all five buttons,data,event/filter/restoration handlers and disposal. The portable script exercises dynamic data,queries and recovery. SqsMap generated the example source.