Aller au contenu

Matrice de prise en charge CSS

NextPDF implémente le rendu CSS conformément aux spécifications publiées par le W3C. Cette page recense chaque module CSS du corpus de spécifications de NextPDF et consigne l’état réel de prise en charge de chaque module dans le pipeline de rendu, tel qu’il ressort de l’audit de vérité.

Cette révision résulte de l’audit de vérité Wave 4 B2 (section 4.4 du plan). Les badges de la révision structurelle précédente étaient des marqueurs non vérifiés. Chaque ligne a été reclassée ici à partir de preuves réelles présentes sur disque (src/Html/, tests/, tests/Wpt/corpus/), des ADR de changements cassants v8/v9 et de l’audit interne de couverture des propriétés CSS. L’honnêteté a primé sur la couverture : lorsqu’un badge devait être abaissé, il l’a été.

Quatre badges classent chaque ligne, selon le contrat de vérification :

  • Vérifié — implémentation src/Html/ plus une fixture automatisée dédiée et substantielle : une suite au niveau des propriétés comptant trois fichiers ou plus sous tests/Unit/Html/<Module>/, ou un fragment de corpus Web Platform Tests d’au moins cinquante fixtures sous tests/Wpt/corpus/. Aucune référence PDF de référence (« golden ») n’est encore raccordée par module CSS ; les lignes vérifiées utilisent donc le profil de reproductibilité structural (équivalence d’assertions PHPUnit), jamais bitwise.
  • Revendiqué — le comportement du module est implémenté dans src/Html/ (chemin source cité), mais la fixture dédiée est peu fournie, partagée ou absente. Chaque ligne revendiquée qui dispose d’une implémentation concrète a un ticket de comblement.
  • Non pris en charge — hors périmètre du pipeline de rendu PDF statique. API uniquement disponibles à l’exécution ou dans le navigateur, runtimes de défilement/d’animation et travaux abandonnés par le W3C. La raison est consignée.
  • Inconnu — le module figure dans le corpus, mais aucune preuve d’implémentation ou de fixture n’a pu être identifiée. L’audit n’a jamais surévalué une ligne pour gonfler le décompte.

Le badge partial de la révision structurelle a été retiré : chaque ancienne ligne partielle a été reclassée en claimed (implémentation présente, pas de fixture dédiée) ou verified.

BadgeSignification
verifiedsrc/Html/ + suite de fixtures dédiée (≥3 fichiers) ou fragment WPT (≥50 fixtures) ; passe de façon déterministe sous le profil structural.
claimedPreuves d’implémentation dans src/Html/, pas de fixture dédiée. Ticket de comblement suivi.
not-supportedExplicitement exclu du périmètre PDF statique. Raison consignée.
unknownAucune preuve déterminable. Pas de surévaluation.

La colonne Confiance est un indicateur honnête et non binaire de la solidité des preuves qui justifient le badge affiché (high / medium / low), indépendamment du badge lui-même.

NextPDF prend en charge les modules CSS listés ci-dessous aux niveaux indiqués. Les lignes Vérifié disposent d’une suite de fixtures automatisée dédiée ou d’un fragment de corpus WPT substantiel qui atteste le comportement de NextPDF, et passent de façon déterministe sous le profil de reproductibilité structural. Les lignes Revendiqué ont des preuves d’implémentation dans src/Html/, mais pas encore de fixture dédiée ; chacune est suivie dans le ticket de suivi #614. Les lignes Non pris en charge documentent des limites de périmètre explicites pour la cible PDF statique.

Il n’existe aucune référence PDF de référence (« golden ») par module CSS dans cette révision ; aucune ligne ne revendique une reproductibilité à l’octet près. Les lignes laissées vides sont interdites par le contrat de vérification — lorsque la prise en charge ne peut pas être déterminée, la ligne est unknown.

StatutModulesConfiance (élevée / moyenne / faible)
Vérifié128 / 4 / 0
Revendiqué490 / 35 / 14
Non pris en charge6762 / 5 / 0
Inconnu390 / 0 / 39
Total16770 / 44 / 53

Le bloc summary de la révision structurelle était contradictoire en interne : il déclarait 148 au total (18 verified / 11 partial / 11 claimed / 53 not-supported / 55 unknown), alors que le fichier contenait en réalité 167 lignes de modules dont les propres étiquettes totalisaient 34 verified / 13 partial / 13 claimed / 68 not-supported / 39 unknown. Cet audit a corrigé le total réel à 167 et a reclassé chaque ligne à partir des preuves présentes sur disque : le nombre de lignes vérifiées est passé de 34 lignes affichées comme telles à 12 lignes étayées. Cette réduction est le résultat correct d’un audit honnête, pas une régression. Le delta complet before/after figure dans le fichier annexe interne au dépôt _css-matrix-truth-report.md.

La révision structurelle a étiqueté à tort trois capacités actives comme supprimées ou non prises en charge. Pour l’enum ExperimentalFeature, ADR-027 et ADR-028 n’ont retiré que les marqueurs opt-in ; les capacités elles-mêmes restent LIVE, actives par défaut :

  • Subgrid (css_grid_2) — LIVE ; CssFeatureFlags::$layoutSubgrid actif par défaut. Était étiqueté à tort « subgrid hard-removed v9.0.0 ».
  • Requêtes @container (css_contain_2) — répartition à l’exécution explicitement inchangée par ADR-028 ; opt-out du drapeau préservé. Était étiqueté à tort « hard-removed v9.0.0 ».
  • writing-mode: vertical-lr (css_writing_modes_3) — actif par défaut et stable depuis v7.0.0 ; ADR-027 n’a fait qu’achever la poignée de main de dépréciation. Était étiqueté à tort « deprecated/removed v8.0.0 ».

Le jeu de lignes par module, lisible par machine, se trouve dans le fichier interne au dépôt css-support-matrix-data.yaml et fait foi. Cette page en est la version lisible par un humain, regroupée par catégorie. Les composants Astro consomment directement le YAML lors de la génération de la documentation.

Module W3CNiveauW3CStatutConfiancePreuves
CSS Flexible Box Layout (css_flexbox_1)1CRVérifiéélevéesrc/Html/Flex/, tests/Unit/Html/Flex/ (50 fichiers)
CSS Grid Layout (css_grid_1)1RECVérifiéélevéesrc/Html/Grid/, tests/Unit/Html/Grid/ (25), tests/Wpt/corpus/css-grid/ (654)
CSS Grid Layout — Subgrid (css_grid_2)2CRRevendiquémoyennesrc/Html/Grid/Subgrid/ + fragment WPT de 80 fixtures + 1 test d’intégration. LIVE, actif par défaut (ADR-028 n’a retiré que le marqueur d’enum).
CSS Grid Layout — Masonry (css_grid_3)3EDNon pris en chargeélevéeMasonry hors périmètre pour v5.x.
CSS Display (css_display_3)3CRRevendiquémoyenneDisplayResolver.php + tests du résolveur ; pas de suite de propriétés dédiée.
CSS Display (css_display_4)4EDInconnufaibleAucune preuve L4.
CSS Positioned Layout (css_position_3)3WDVérifiéélevéesrc/Html/Positioned/, tests/Unit/Html/Positioned/ (8 fichiers)
CSS Positioned Layout (css_position_4)4EDInconnufaibleposition: sticky/anchor non attesté.
CSS Box Alignment (css_align_3)3WDRevendiquémoyenneImplémenté dans les moteurs Flex/Grid ; pas de suite autonome.
CSS Box Sizing (css_sizing_3)3CRRevendiquéfaiblesrc/Html/Length/ ; l’audit Phase 0 montre que width/height est en grande partie POLICY-ONLY.
CSS Box Sizing (css_sizing_4)4EDInconnufaibleMots-clés de taille intrinsèque non attestés.
CSS Box Model (css_box_3)3WDRevendiquémoyenneCouverture de la fusion des marges ; le modèle de boîte left/right manque selon l’audit Phase 0. Backfill #617.
CSS Box Model (css_box_4)4EDInconnufaibleAucune preuve.
CSS Multi-column Layout (css_multicol_1)1CRRevendiquémoyennesrc/Html/MultiCol/ ; pas de suite de propriétés.
CSS Multi-column Layout (css_multicol_2)2EDInconnufaibleAucune preuve.
CSS Fragmentation (css_break_3)3CRVérifiémoyennesrc/Html/Fragmentation/, tests/Unit/Html/PagedMedia/ (20 fichiers)
CSS Fragmentation (css_break_4)4EDInconnufaibleAucune preuve.
CSS Containment (css_contain_1)1RECNon pris en chargemoyenneAucun applicateur contain layout/paint ; pas de modèle de mise à jour en direct.
CSS Containment — @container (css_contain_2)2CRRevendiquéfaibleFragment WPT de 114 fixtures + modèle de mise en page conservée ADR-017/021. Runtime LIVE (ADR-028 n’a retiré que le marqueur d’enum).
CSS Containment (css_contain_3)3EDNon pris en chargemoyenneConfinement de style hors périmètre.
CSS Inline Layout (css_inline_3)3WDRevendiquémoyennesrc/Html/Layout/InlineLayout/ + 8 tests ; initial-letter non attesté.
CSS Logical Properties (css_logical_1)1WDRevendiquémoyenneRésolveur logique→physique WritingMode ; pas de fixture dédiée. Les valeurs logiques text-align: start/end se résolvent par rapport à direction — sous direction: rtl, start désigne le bord droit — et sont appliquées dans les cellules de tableau.
CSS Page Floats (css_page_floats_3)3EDNon pris en chargeélevéeHors périmètre pour v5.x.
CSS Pagination Templates (css_page_templates_3)3EDNon pris en chargeélevéePagination multi-régions hors périmètre.
CSS Exclusions (css_exclusions_1)1WDNon pris en chargeélevéeNiveau C ; aucun engagement de feuille de route.
CSS Regions (css_regions_1)1WDNon pris en chargeélevéeAbandonné par le W3C.
CSS Template Layout (css_template_1)1NOTENon pris en chargeélevéeHors périmètre.
CSS Layout API (css_layout_api_1)1WDNon pris en chargeélevéeRuntime de worklet ; sans objet.

Modèle de boîte — arrière-plans, bordures, effets

Section intitulée « Modèle de boîte — arrière-plans, bordures, effets »
Module W3CNiveauW3CStatutConfiancePreuves
CSS Backgrounds and Borders (css_backgrounds_3)3CRRevendiquémoyennesrc/Html/Background/, BorderRenderer.php ; bg-color limité aux tableaux selon l’audit Phase 0. Backfill #628.
CSS Backgrounds (css_backgrounds_4)4EDInconnufaibleAucune preuve.
CSS Borders and Box Decorations (css_borders_4)4EDInconnufaibleAucune preuve.
CSS Gap Decorations (css_gaps_1)1EDInconnufaibleAucune preuve.
CSS Masking (css_masking_1)1CRNon pris en chargemoyenneclip-path/mask non routés vers les opérateurs de découpe PDF.
CSS Shadow Module (css_shadow_1)1EDRevendiquémoyennesrc/Html/Shadow/ (BoxShadowRenderer) ; pas de fixture dédiée.
CSS Shapes (css_shapes_1)1CRNon pris en chargeélevéeshape-outside hors périmètre pour v5.x.
CSS Shapes (css_shapes_2)2EDNon pris en chargeélevéeHors périmètre.
Filter Effects (filter_effects_1)1WDNon pris en chargeélevéePrimitives de filtre SVG non routées vers le PDF.
Filter Effects (filter_effects_2)2EDNon pris en chargeélevéeHors périmètre.
Compositing and Blending (compositing_1)1CRRevendiquémoyenneMappage des modes de fusion PDF dans PaintCommand/ ; un test de mode de fusion.
Compositing (compositing_2)2EDInconnufaibleAucune preuve.
CSS Fill and Stroke (fill_stroke_3)3EDInconnufaibleAucune preuve.
Geometry Interfaces (geometry_1)1CRNon pris en chargeélevéeAPI d’exécution DOM Matrix.
DOMMatrix (matrix)1NOTENon pris en chargeélevéeAPI d’exécution du navigateur.
Motion Path (motion_1)1WDNon pris en chargeélevéeUniquement animation.
Module W3CNiveauW3CStatutConfiancePreuves
CSS Fonts (css_fonts_3)3RECVérifiémoyennesrc/Html/Font/, tests/Unit/Font/ (9) + tests FontResolver
CSS Fonts (css_fonts_4)4CRVérifiéélevéesrc/Html/FontFace/, tests/Unit/Html/FontFace/ (31 fichiers)
CSS Fonts (css_fonts_5)5EDInconnufaiblefont-tech() non attesté.
CSS Font Loading (css_font_loading_3)3WDNon pris en chargeélevéeAPI d’exécution JS FontFace ; chargement côté PHP via FontResolver.
CSS Text (css_text_3)3CRRevendiquémoyennesrc/Html/Text/ + 5 tests ; Phase 0 FULL pour align/indent/spacing, white-space limité à <pre>. Backfill #618.
CSS Text (css_text_4)4EDRevendiquémoyennesrc/Html/Layout/Hyphenation/ + tests de stratégie ; autres propriétés L4 en attente.
CSS Text Decoration (css_text_decor_3)3CRRevendiquémoyennesrc/Html/Text/ ; Phase 0 FULL mais pas de fixture dédiée. Backfill #619.
CSS Text Decoration (css_text_decor_4)4EDInconnufaibletext-emphasis non attesté.
CSS Ruby (css_ruby_1)1WDNon pris en chargeélevéeAnnotations ruby hors périmètre pour v5.x.
CSS Writing Modes (css_writing_modes_3)3RECRevendiquémoyennesrc/Html/Layout/WritingMode/ (7 tests) + fragment WPT de 140 fixtures. vertical-lr LIVE, actif par défaut (ADR-027). direction: rtl est fonctionnel — réordonnancement bidirectionnel UAX#9 et mise en forme contextuelle de l’arabe, avec alignement sur le début dans les cellules de tableau. L’alignement des blocs hors tableau et justify ne sont pas encore appliqués, et l’attribut HTML dir n’est pas pris en compte (utilise CSS direction). Voir Rendre du HTML arabe de droite à gauche. Backfill #629.
CSS Writing Modes (css_writing_modes_4)4EDInconnufaibleAucune preuve.
CSS Speech (css_speech_1)1CRNon pris en chargeélevéeRendu auditif sans objet.
CSS Mobile Text Size Adjustment (css_size_adjust_1)1EDNon pris en chargeélevéeIndication de l’agent utilisateur mobile ; sans objet.
Module W3CNiveauW3CStatutConfiancePreuves
CSS Color (css_color_3)3RECRevendiquémoyennesrc/Html/Color/, NamedColors.php + tests du parseur ; pas de fixture de module. Backfill #620.
CSS Color (css_color_4)4CRRevendiquémoyenneAnalyse Lab/LCH/OKLab ; la fidélité de l’espace colorimétrique PDF n’est pas affirmée.
CSS Color (css_color_5)5WDInconnufaiblecolor-mix() non attesté.
CSS Color (css_color_6)6EDInconnufaibleAucune preuve.
CSS Color Adjustment (css_color_adjust_1)1CRNon pris en chargeélevéecolor-scheme piloté par l’agent utilisateur ; sans objet.
CSS Color HDR (css_color_hdr_1)1EDNon pris en chargeélevéeHDR non routé vers l’espace colorimétrique PDF.
CSS Images (css_images_3)3CRRevendiquémoyennesrc/Html/Gradient/ (linear/radial/conic) + tests du parseur.
CSS Images (css_images_4)4EDInconnufaibleimage()/image-set() non attestés.
CSS Images (css_images_5)5EDInconnufaibleAucune preuve.
CSS Image Animation (css_image_animation_1)1EDNon pris en chargeélevéeUniquement animation.
Module W3CNiveauW3CStatutConfiancePreuves
CSS Selectors (selectors_3)3RECRevendiquémoyenneHasSelectorResolver.php + tests CssRule ; la fixture est un unique corpus.json. Backfill #627.
CSS Selectors (selectors_4)4WDRevendiquémoyenne:is()/:where()/:not()/:has() testés ; L4 avancé en attente.
CSS Selectors (selectors_5)5EDInconnufaibleAucune preuve.
CSS Non-element Selectors (selectors_nonelement_1)1WDNon pris en chargeélevéePoints d’accroche de feuille de style du navigateur ; sans objet.
CSS Pseudo-Elements (css_pseudo_4)4WDRevendiquémoyennesrc/Html/Pseudo/ (12) + ~10 tests du renderer ; pas de suite de module.
CSS Cascading and Inheritance (css_cascade_3)3RECVérifiéélevéesrc/Html/Cascade/, tests/Unit/Html/Cascade/ (9 fichiers)
CSS Cascading (css_cascade_4)4CRVérifiéélevéeCascade/Layer/ + tests revert/layer
CSS Cascading (css_cascade_5)5CRVérifiéélevéeAtRule/Layer/ + Cascade/Layer/ (suites)
CSS Cascading (css_cascade_6)6WDInconnufaible@scope non attesté.
CSS Values and Units (css_values_3)3RECRevendiquémoyenneCssValueParser.php + tests unitaires ; la fixture est un unique corpus.json. Backfill #626.
CSS Values and Units (css_values_4)4CRRevendiquémoyennecalc() implémenté ; min()/max()/clamp() imbriqués ne sont pas pleinement attestés.
CSS Values and Units (css_values_5)5EDInconnufaibleAucune preuve.
CSS Custom Properties (css_variables_1)1CRRevendiquémoyennesrc/Html/CustomProperty/ + test de couverture de portée.
CSS Custom Properties (css_variables_2)2EDInconnufaibleAucune preuve.
CSS Conditional Rules (css_conditional_3)3CRRevendiquémoyenne@media/@supports analysés ; runtime @container préservé (ADR-028).
CSS Conditional Rules (css_conditional_4)4EDInconnufaibleAucune preuve.
CSS Conditional Rules (css_conditional_5)5EDInconnufaibleAucune preuve.
CSS Conditional Values (css_conditional_values_1)1EDInconnufaibleAucune preuve.
CSS Namespaces (css_namespaces_3)3RECRevendiquéfaibleLe parseur tolère @namespace ; pas de couverture de correspondance.
CSS Style Attributes (css_style_attr_1)1CRRevendiquémoyenneAnalyse de style en ligne dans tout le pipeline ; pas de fixture dédiée. Backfill #622.
CSS Syntax (css_syntax_3)3CRRevendiquémoyenneCssParser/ + tests grammar/fuzz ; pas de fixture de conformité. Backfill #623.
CSS Nesting (css_nesting_1)1CRRevendiquémoyennePromu depuis unknown — CssNestingTest + tests desugar/inner-scan.
CSS Environment Variables (css_env_1)1EDNon pris en chargemoyennePiloté par l’agent utilisateur, env() ; sans objet.
CSS Custom Functions and Mixins (css_mixins_1)1EDInconnufaibleAucune preuve.
CSS Extensions (css_extensions_1)1NOTEInconnufaibleAucune preuve.
Module W3CNiveauW3CStatutConfiancePreuves
CSS Lists and Counters (css_lists_3)3WDRevendiquémoyenneHtmlListRenderer.php/CssCounterManager.php + 18 tests ; list-style-type non appliqué à ol/ul (Phase 0).
CSS Counter Styles (css_counter_styles_3)3CRRevendiquémoyenneStyles de compteur intégrés ; @counter-style en attente.
CSS Generated Content (css_content_3)3WDRevendiquémoyenneCssContentSegment.php + tests pseudo ; contourne l’applicateur (Phase 0). Backfill #621.
CSS Generated Content for Paged Media (css_gcpm_3)3WDRevendiquémoyennesrc/Html/Gcpm/ registres + test de capture de notes de bas de page.
CSS Generated Content for Paged Media (css_gcpm_4)4EDInconnufaibleAucune preuve.
Module W3CNiveauW3CStatutConfiancePreuves
CSS Paged Media (css_page_3)3WDRevendiquémoyennePage/, PagedMedia/, PageRule.php + tests PageRuleParser/PageMarginBox ; tests/Unit/Html/Page/ contient 1 fichier. Backfill #624.
CSS Paged Media (css_page_4)4NOTEInconnufaiblePropositions futures.
CSS Print Profile (css_print)1NOTERevendiquéfaibleLa cible PDF statique respecte les contraintes d’impression ; pas de fixture de conformité.
CSS Presentation Levels (css_preslev_1)1NOTENon pris en chargeélevéeNavigation de type diaporama ; sans objet.
Module W3CNiveauW3CStatutConfiancePreuves
CSS Overflow (css_overflow_3)3WDRevendiquéfaibleOverflowClip/ClipRect tests ; découpe limitée aux cellules de tableau (Phase 0).
CSS Overflow (css_overflow_4)4EDInconnufaibleAucune preuve.
CSS Overflow (css_overflow_5)5EDInconnufaibleAucune preuve.
CSS Overscroll Behavior (css_overscroll_1)1CRNon pris en chargeélevéeRuntime de défilement ; sans objet.
CSS Scroll Anchoring (css_scroll_anchoring_1)1WDNon pris en chargeélevéeRuntime de défilement ; sans objet.
CSS Scroll Snap (css_scroll_snap_1)1RECNon pris en chargeélevéeRuntime de défilement ; sans objet.
CSS Scroll Snap (css_scroll_snap_2)2WDNon pris en chargeélevéeRuntime de défilement ; sans objet.
CSS Scrollbars Styling (css_scrollbars_1)1CRNon pris en chargeélevéeRuntime de l’agent utilisateur ; sans objet.
CSS Basic User Interface (css_ui_3)3RECNon pris en chargemoyennecursor/resize uniquement pour l’IU du navigateur.
CSS Basic User Interface (css_ui_4)4WDNon pris en chargeélevéeRuntime de l’agent utilisateur ; sans objet.
CSS Form Control Styling (css_forms_1)1EDNon pris en chargeélevéeLes widgets de formulaire ne sont pas rendus par le PDF statique.
CSS View Transitions (css_view_transitions_1)1WDNon pris en chargeélevéeUniquement animation.
CSS View Transitions (css_view_transitions_2)2EDNon pris en chargeélevéeUniquement animation.
CSS Spatial Navigation (css_nav_1)1NOTENon pris en chargeélevéeRuntime de l’agent utilisateur ; sans objet.
CSS Route Matching (css_navigation_1)1EDNon pris en chargeélevéeRuntime de l’agent utilisateur ; sans objet.
Module W3CNiveauW3CStatutConfiancePreuves
CSS Table (css_tables_3)3WDVérifiéélevéesrc/Html/Table/, tests/Unit/Html/Table/ (17) + ~60 tests TableParser + 5 PDF de référence synthétiques dans tests/Corpus/tables/
Module W3CNiveauW3CStatutConfiancePreuves
CSS Transforms (css_transforms_1)1CRRevendiquémoyenneRenderer/Transform/ + ApplyTransformCommand.php ; pas de fixture dédiée.
CSS Transforms (css_transforms_2)2EDInconnufaibleTransformations 3D non attestées.
CSS Animations (css_animations_1)1WDNon pris en chargeélevéeLa chronologie d’animation est sans objet pour le PDF statique.
CSS Animations (css_animations_2)2EDNon pris en chargeélevéeHors périmètre.
CSS Transitions (css_transitions_1)1WDNon pris en chargeélevéeHors périmètre.
CSS Transitions (css_transitions_2)2EDNon pris en chargeélevéeHors périmètre.
CSS Easing Functions (css_easing_1)1CRNon pris en chargeélevéeUniquement animation.
CSS Easing Functions (css_easing_2)2EDNon pris en chargeélevéeUniquement animation.
Web Animations (web_animations_1)1WDNon pris en chargeélevéeAPI d’exécution du navigateur.
Web Animations (web_animations_2)2EDNon pris en chargeélevéeAPI d’exécution du navigateur.
Web Animations CSS Integration (web_animations_css_integration)1EDNon pris en chargeélevéeAPI d’exécution du navigateur.
Animation Triggers (animation_triggers)1EDNon pris en chargeélevéeUniquement animation.
Pointer-driven Animations (pointer_animations_1)1EDNon pris en chargeélevéeÉvénement d’entrée à l’exécution ; sans objet.
Scroll-driven Animations (scroll_animations_1)1EDNon pris en chargeélevéeRuntime de défilement ; sans objet.
CSS Animation Worklet (css_animation_worklet)1EDNon pris en chargeélevéeRuntime de worklet du navigateur.
Module W3CNiveauW3CStatutConfiancePreuves
CSS Anchor Positioning (css_anchor_position_1)1WDInconnufaibleAucune source anchor().
CSS Anchor Positioning (css_anchor_position_2)2EDInconnufaibleAucune preuve.
CSS Highlight API (css_highlight_api_1)1WDNon pris en chargeélevéeAPI d’exécution du navigateur.
CSS Properties and Values API (css_properties_values_api_1)1CRNon pris en chargeélevéeAPI d’exécution du navigateur.
CSS Painting API (css_paint_api_1)1WDNon pris en chargeélevéeRuntime de worklet du navigateur.
CSS Typed OM (css_typed_om_1)1WDNon pris en chargeélevéeAPI d’exécution du navigateur.
CSSOM (cssom_1)1WDNon pris en chargeélevéeAPI DOM du navigateur.
CSSOM View (cssom_view_1)1WDNon pris en chargeélevéeAPI DOM du navigateur.
CSS Will Change (css_will_change_1)1CRNon pris en chargeélevéeIndication d’optimisation du navigateur.
CSS Linked Parameters (css_link_params_1)1EDInconnufaibleAucune preuve.
CSS Line Grid (css_line_grid_1)1NOTEInconnufaibleAucune preuve.
CSS Rhythmic Sizing (css_rhythm_1)1EDInconnufaibleAucune preuve.
CSS Round Display (css_round_display_1)1EDNon pris en chargeélevéeCible d’affichage circulaire sans objet.
CSS Shaders (css_shaders_1)1NOTENon pris en chargeélevéeSupprimé par le W3C.
CSS Viewport (css_viewport_1)1NOTENon pris en chargeélevéeViewport de l’agent utilisateur ; sans objet.
Module W3CNiveauW3CStatutConfiancePreuves
Media Queries (mediaqueries_3)3RECRevendiquémoyenneCssParser/ + tests de couverture des requêtes média ; pas de fixture dédiée. Backfill #625.
Media Queries (mediaqueries_4)4CRRevendiquémoyenne@media print/prefers-color-scheme analysés ; syntaxe d’intervalle en attente.
Media Queries (mediaqueries_5)5WDInconnufaibleAucune preuve.
Module W3CNiveauW3CStatutConfiancePreuves
CSS Level 2 (css_2_1)2.1RECRevendiquéfaibleSocle réparti dans src/Html/ ; pas de fixture de conformité unique.
CSS Level 2.2 (css_2_2)2.2NOTERevendiquéfaibleSocle réparti ; pas de fixture dédiée.
CSS Snapshot 2026 (css_snapshot_2026)snapshotNOTERevendiquéfaibleIndex des autres modules ; le statut est l’agrégat des lignes référencées.

Ces modules W3C figurent dans le corpus, mais sortent du périmètre du pipeline de rendu CSS. Ils sont liés depuis les pages de fonctionnalité correspondantes, le cas échéant.

Module W3CW3CStatutConfianceEmplacement
W3C SVG 1.1 (svg_1_1)RECRevendiquéfaibleSous-ensemble de peinture SVG en ligne dans Renderer/PaintCommand/ ; pas de fixture de matrice CSS.
W3C SVG 2.0 (svg_2_0)CRInconnufaibleRelève du pipeline Premium ; aucune preuve côté Core.
W3C PNG 3rd Edition (png_3)WDRevendiquéfaibleDécodage PNG dans le module Graphics/ (hors HTML/CSS).
W3C WOFF 1.0 (woff_1_0)RECRevendiquéfaibleWOFF via la pile Font ; pas de fixture de matrice CSS.
W3C WOFF 2.0 (woff_2_0)RECRevendiquéfaibleWOFF2 via la pile Font ; pas de fixture de matrice CSS.
W3C WCAG 2.2 (wcag_2_2)RECVérifiémoyennesrc/Html/Aam/, tests/Unit/Accessibility/HtmlAam/ (4 fichiers) — PDF/UA-2.
W3C WAI-ARIA 1.2 (wai_aria_1_2)RECVérifiémoyennetests/Unit/Accessibility/HtmlAam/ (4 fichiers).
W3C ARIA Bundle (w3c_aria_bundle)RECRevendiquéfaibleLot d’orientations ; la preuve concrète est la ligne WAI-ARIA.
W3C AAM Bundle (w3c_aam_bundle)NOTERevendiquéfaiblePointeur de lot ; la preuve réside dans les lignes WAI-ARIA/WCAG.
W3C ATAG 2.0 (atag_2_0)RECNon pris en chargeélevéeAccessibilité des outils de création ; sans objet.
W3C XSL 1.1 (xsl_1_1)RECNon pris en chargeélevéeModèle de formatage parallèle XSL-FO ; non implémenté.
W3C XSD 1.1 Part 1 (xsd_1_1_part1)RECNon pris en chargeélevéeSchéma XML ; sans objet.
W3C XSLT 3.0 (xslt_3_0)RECNon pris en chargeélevéeLangage de transformation ; sans objet.
Resize Observer (resize_observer_1)CRNon pris en chargeélevéeAPI d’exécution du navigateur.

Pour qu’une ligne passe de claimed à verified :

  1. Une suite de fixtures dédiée de niveau propriété réside sous tests/Unit/Html/<Module>/ (≥3 fichiers) ou un fragment de corpus WPT substantiel (≥50 fixtures) sous tests/Wpt/corpus/ est promu en test assertif.
  2. La fixture vérifie le comportement de NextPDF par rapport à la grammaire W3C pour les propriétés principales du module.
  3. La fixture passe de façon déterministe sous un NextPDF\Testing\ReproducibilityProfile (structural pour les fixtures d’assertion ; bitwise seulement une fois que des références PDF de référence par module existent).
  4. Le nextpdf_status de la ligne dans le fichier interne au dépôt css-support-matrix-data.yaml bascule sur verified, avec mise à jour de fixture_path, repro_profile et confidence.

Pour qu’une ligne passe de unknown à claimed :

  1. Une passe d’audit confirme les preuves d’implémentation dans src/Html/ (cite le chemin dans evidence + notes).
  2. Un ticket de comblement est ouvert et lié dans backfill_issue.
  • Rapport de vérité de la matrice CSS (_css-matrix-truth-report.md, interne au dépôt) — deltas d’audit before/after, distribution de confiance, journal de dégonflement.
  • Audit de couverture des propriétés CSS (architecture/css-property-coverage-audit.md, interne au dépôt) — audit interne à quatre états par propriété (Policy/Parsed/Applied/Rendered).
  • ADR-027 v8.0.0 BREAKING (architecture/adr/ADR-027-v8-breaking.md, interne au dépôt) — aboutissement de la poignée de main de dépréciation vertical-lr (capacité préservée).
  • ADR-028 v9.0.0 BREAKING (architecture/adr/ADR-028-v9-breaking.md, interne au dépôt) — retrait du marqueur d’enum Grid/Subgrid/@container (capacités préservées).
  • Ticket de suivi du comblement : https://github.com/nextpdf-labs/nextpdf/issues/614