NextPDF hiện thực kết xuất Cascading Style Sheets (CSS) theo các đặc tả đã công bố của World Wide Web Consortium (W3C). Hãy dùng trang này để rà soát từng mô-đun CSS trong tập đặc tả của NextPDF và trạng thái hỗ trợ đã qua kiểm toán tính trung thực của mô-đun đó trong pipeline kết xuất.
Bản sửa đổi này xuất phát từ đợt kiểm toán tính trung thực Wave 4 B2 (mục 4.4 của kế hoạch). Bản sửa đổi cấu trúc trước đó đã dùng các huy hiệu giữ chỗ chưa được xác minh. Đợt kiểm toán đã chấm lại mọi hàng dựa trên bằng chứng thực tế trên đĩa (src/Html/, tests/, tests/Wpt/corpus/), các bản ghi quyết định kiến trúc (ADR) về thay đổi gây phá vỡ v8/v9, và đợt kiểm toán nội bộ về độ phủ thuộc tính CSS. Đợt kiểm toán ưu tiên tính trung thực hơn độ phủ: khi bằng chứng cho thấy một huy hiệu phải bị hạ cấp, huy hiệu đó đã được hạ xuống.
Bốn huy hiệu phân loại từng hàng theo giao ước xác minh:
- Verified — Có hiện thực trong
src/Html/ cộng với một fixture tự động chuyên biệt, có giá trị: hoặc là một bộ kiểm thử ở cấp thuộc tính gồm ba tệp trở lên trong tests/Unit/Html/<Module>/, hoặc một phân mảnh tập Web Platform Tests (WPT) gồm năm mươi fixture trở lên trong tests/Wpt/corpus/. Chưa có đường cơ sở PDF (Portable Document Format) chuẩn vàng cho từng mô-đun CSS nào được nối dây, nên các hàng verified dùng hồ sơ tái lập structural (tương đương khẳng định PHPUnit), không bao giờ là bitwise.
- Claimed — Hành vi của mô-đun được hiện thực trong
src/Html/ (có dẫn đường dẫn mã nguồn), nhưng fixture chuyên biệt còn mỏng, dùng chung, hoặc chưa có. Mỗi hàng claimed có hiện thực cụ thể đều đi kèm một issue bổ sung lùi.
- Not supported — Pipeline kết xuất PDF tĩnh không bao gồm mô-đun này: các API runtime/browser-only, các runtime scrolling/animation, và các phần việc đã bị W3C ngừng phát triển. Hàng này ghi lại lý do tương ứng.
- Unknown — Mô-đun có trong tập đặc tả, nhưng đợt kiểm toán không tìm thấy bằng chứng nào về hiện thực hoặc fixture. Đợt kiểm toán không bao giờ suy đoán theo hướng cao hơn chỉ để cải thiện con số.
Huy hiệu partial của bản sửa đổi cấu trúc đã được gỡ bỏ: mọi hàng từng là partial đều được chấm lại thành claimed (có hiện thực, không có fixture chuyên biệt) hoặc verified.
| Huy hiệu | Ý nghĩa |
|---|
verified | src/Html/ + bộ fixture chuyên biệt (≥3 tệp) hoặc phân mảnh WPT (≥50 fixture); vượt qua một cách tất định theo hồ sơ structural. |
claimed | Có bằng chứng hiện thực trong src/Html/, nhưng không có fixture chuyên biệt. Issue bổ sung lùi đang được theo dõi. |
not-supported | Bị loại trừ một cách tường minh khỏi phạm vi PDF tĩnh. Lý do được ghi lại. |
unknown | Không xác định được bằng chứng nào. Không suy đoán theo hướng cao hơn. |
Cột Confidence là tín hiệu trung thực, không nhị phân, về bằng chứng đứng sau huy hiệu đã nêu (high / medium / low). Cột này độc lập với chính huy hiệu đó.
NextPDF hỗ trợ các mô-đun CSS liệt kê bên dưới ở các mức đã ghi chú. Các hàng Verified có một bộ fixture tự động chuyên biệt hoặc một phân mảnh tập WPT có giá trị, dùng để khẳng định hành vi của NextPDF và vượt qua một cách tất định theo hồ sơ tái lập structural. Các hàng Claimed có bằng chứng hiện thực trong src/Html/, nhưng chưa có fixture chuyên biệt; mỗi hàng được theo dõi bằng một issue bổ sung lùi tại issue theo dõi #614. Các hàng Not supported ghi lại ranh giới phạm vi tường minh cho mục tiêu PDF tĩnh.
Không có hàng nào tuyên bố khả năng tái lập ở mức byte, vì bản sửa đổi này không có đường cơ sở PDF chuẩn vàng cho từng mô-đun CSS. Giao ước xác minh cấm các hàng trống: khi không thể xác định mức hỗ trợ, hàng đó là unknown.
| Trạng thái | Số mô-đun | Độ tin cậy (high / medium / low) |
|---|
| Verified | 12 | 8 / 4 / 0 |
| Claimed | 49 | 0 / 35 / 14 |
| Not supported | 67 | 62 / 5 / 0 |
| Unknown | 39 | 0 / 0 / 39 |
| Tổng | 167 | 70 / 44 / 53 |
Khối summary của bản sửa đổi cấu trúc không nhất quán nội bộ: nó khai báo tổng 148 (18 verified / 11 partial / 11 claimed / 53 not-supported / 55 unknown), trong khi tệp lại chứa 167 hàng mô-đun với các nhãn cộng lại thành 34 verified / 13 partial / 13 claimed / 68 not-supported / 39 unknown. Đợt kiểm toán này đã chỉnh tổng về con số thực là 167 và chấm lại mọi hàng dựa trên bằng chứng trên đĩa: Verified giảm từ con số 34 được tuyên bố xuống còn 12 có cơ sở. Mức giảm đó là kết quả đúng của một đợt kiểm toán trung thực, không phải một bước thụt lùi. Toàn bộ chênh lệch before/after nằm trong tệp đi kèm _css-matrix-truth-report.md trong repo.
Bản sửa đổi cấu trúc đã gán nhãn sai cho ba khả năng đang hoạt động, coi chúng như đã bị gỡ bỏ hoặc không được hỗ trợ. ADR-027 và ADR-028 chỉ gỡ bỏ phần enum ExperimentalFeature đánh dấu chọn tham gia (opt-in); các khả năng này vẫn đang hoạt động và bật theo mặc định:
- Subgrid (
css_grid_2) — đang hoạt động; CssFeatureFlags::$layoutSubgrid bật theo mặc định. Khả năng này đã bị gán nhãn sai là “subgrid bị gỡ bỏ cứng ở v9.0.0”.
@container truy vấn (css_contain_2) — phần điều phối lúc chạy được ADR-028 nêu rõ là không thay đổi; tùy chọn từ chối (opt-out) bằng cờ được giữ lại. Khả năng này đã bị gán nhãn sai là “bị gỡ bỏ cứng ở v9.0.0”.
writing-mode: vertical-lr (css_writing_modes_3) — bật theo mặc định, ở trạng thái Stable kể từ v7.0.0; ADR-027 chỉ nâng cấp quy trình bắt tay loại bỏ. Khả năng này đã bị gán nhãn sai là “bị loại bỏ/gỡ bỏ ở v8.0.0”.
Tập hàng cho từng mô-đun ở dạng máy đọc được nằm trong tệp css-support-matrix-data.yaml trong repo; đây là nguồn chân lý. Trang này là bản trình bày cho người đọc, được nhóm theo danh mục. Các thành phần Astro tiêu thụ trực tiếp dữ liệu YAML trong quá trình dựng tài liệu.
| Mô-đun W3C | Cấp | W3C | Trạng thái | Độ tin cậy | Bằng chứng |
|---|
CSS Flexible Box Layout (css_flexbox_1) | 1 | CR | Verified | high | src/Html/Flex/, tests/Unit/Html/Flex/ (50 tệp) |
CSS Grid Layout (css_grid_1) | 1 | REC | Verified | high | src/Html/Grid/, tests/Unit/Html/Grid/ (25), tests/Wpt/corpus/css-grid/ (654) |
CSS Grid Layout — Subgrid (css_grid_2) | 2 | CR | Claimed | medium | src/Html/Grid/Subgrid/ + phân mảnh WPT gồm 80 fixture + 1 test tích hợp. Đang hoạt động và bật theo mặc định (ADR-028 chỉ gỡ bỏ dấu enum). |
CSS Grid Layout — Masonry (css_grid_3) | 3 | ED | Not supported | high | Masonry nằm ngoài phạm vi của v5.x. |
CSS Display (css_display_3) | 3 | CR | Claimed | medium | DisplayResolver.php + các test resolver; không có bộ test thuộc tính chuyên biệt. |
CSS Display (css_display_4) | 4 | ED | Unknown | low | Không có bằng chứng L4. |
CSS Positioned Layout (css_position_3) | 3 | WD | Verified | high | src/Html/Positioned/, tests/Unit/Html/Positioned/ (8 tệp) |
CSS Positioned Layout (css_position_4) | 4 | ED | Unknown | low | position: sticky/anchor không được chứng minh. |
CSS Box Alignment (css_align_3) | 3 | WD | Claimed | medium | Đã được hiện thực bên trong các engine Flex/Grid; không có bộ test độc lập. |
CSS Box Sizing (css_sizing_3) | 3 | CR | Claimed | low | src/Html/Length/; đợt kiểm toán Phase 0 cho thấy width/height phần lớn chỉ ở mức POLICY. |
CSS Box Sizing (css_sizing_4) | 4 | ED | Unknown | low | Không có bằng chứng cho các từ khóa kích thước nội tại. |
CSS Box Model (css_box_3) | 3 | WD | Claimed | medium | Có độ phủ cho gộp margin; box model left/right vẫn còn thiếu theo đợt kiểm toán Phase 0. Bổ sung lùi #617. |
CSS Box Model (css_box_4) | 4 | ED | Unknown | low | Không có bằng chứng. |
CSS Multi-column Layout (css_multicol_1) | 1 | CR | Claimed | medium | src/Html/MultiCol/; không có bộ test thuộc tính. |
CSS Multi-column Layout (css_multicol_2) | 2 | ED | Unknown | low | Không có bằng chứng. |
CSS Fragmentation (css_break_3) | 3 | CR | Verified | medium | src/Html/Fragmentation/, tests/Unit/Html/PagedMedia/ (20 tệp) |
CSS Fragmentation (css_break_4) | 4 | ED | Unknown | low | Không có bằng chứng. |
CSS Containment (css_contain_1) | 1 | REC | Not supported | medium | Không có bộ áp dụng cho contain layout/paint; không có mô hình cập nhật trực tiếp. |
CSS Containment — @container (css_contain_2) | 2 | CR | Claimed | low | Phân mảnh WPT gồm 114 fixture + mô hình bố cục được giữ lại theo ADR-017/021. Runtime đang hoạt động (ADR-028 chỉ gỡ bỏ dấu enum). |
CSS Containment (css_contain_3) | 3 | ED | Not supported | medium | Containment kiểu (style) nằm ngoài phạm vi. |
CSS Inline Layout (css_inline_3) | 3 | WD | Claimed | medium | src/Html/Layout/InlineLayout/ + 8 test; không có bằng chứng cho initial-letter. |
CSS Logical Properties (css_logical_1) | 1 | WD | Claimed | medium | Resolver logic→vật lý trong WritingMode; không có fixture chuyên biệt. text-align: start/end logic phân giải theo direction — dưới direction: rtl, start là cạnh phải — và được áp dụng trong các ô bảng. |
CSS Page Floats (css_page_floats_3) | 3 | ED | Not supported | high | Nằm ngoài phạm vi của v5.x. |
CSS Pagination Templates (css_page_templates_3) | 3 | ED | Not supported | high | Phân trang nhiều vùng nằm ngoài phạm vi. |
CSS Exclusions (css_exclusions_1) | 1 | WD | Not supported | high | Tier C; không có cam kết trong lộ trình. |
CSS Regions (css_regions_1) | 1 | WD | Not supported | high | Đã bị W3C ngừng phát triển. |
CSS Template Layout (css_template_1) | 1 | NOTE | Not supported | high | Nằm ngoài phạm vi. |
CSS Layout API (css_layout_api_1) | 1 | WD | Not supported | high | Runtime worklet; không áp dụng. |
| Mô-đun W3C | Cấp | W3C | Trạng thái | Độ tin cậy | Bằng chứng |
|---|
CSS Backgrounds and Borders (css_backgrounds_3) | 3 | CR | Claimed | medium | src/Html/Background/, BorderRenderer.php; bg-color chỉ áp dụng cho Table theo đợt kiểm toán Phase 0. Bổ sung lùi #628. |
CSS Backgrounds (css_backgrounds_4) | 4 | ED | Unknown | low | Không có bằng chứng. |
CSS Borders and Box Decorations (css_borders_4) | 4 | ED | Unknown | low | Không có bằng chứng. |
CSS Gap Decorations (css_gaps_1) | 1 | ED | Unknown | low | Không có bằng chứng. |
CSS Masking (css_masking_1) | 1 | CR | Not supported | medium | clip-path/mask không được định tuyến tới các toán tử clip của PDF. |
CSS Shadow Module (css_shadow_1) | 1 | ED | Claimed | medium | src/Html/Shadow/ (BoxShadowRenderer); không có fixture chuyên biệt. |
CSS Shapes (css_shapes_1) | 1 | CR | Not supported | high | shape-outside nằm ngoài phạm vi của v5.x. |
CSS Shapes (css_shapes_2) | 2 | ED | Not supported | high | Nằm ngoài phạm vi. |
Filter Effects (filter_effects_1) | 1 | WD | Not supported | high | Các primitive lọc SVG không được định tuyến tới PDF. |
Filter Effects (filter_effects_2) | 2 | ED | Not supported | high | Nằm ngoài phạm vi. |
Compositing and Blending (compositing_1) | 1 | CR | Claimed | medium | Ánh xạ chế độ hòa trộn PDF trong PaintCommand/; có một test chế độ hòa trộn. |
Compositing (compositing_2) | 2 | ED | Unknown | low | Không có bằng chứng. |
CSS Fill and Stroke (fill_stroke_3) | 3 | ED | Unknown | low | Không có bằng chứng. |
Geometry Interfaces (geometry_1) | 1 | CR | Not supported | high | API runtime DOM Matrix. |
DOMMatrix (matrix) | 1 | NOTE | Not supported | high | API runtime của trình duyệt. |
Motion Path (motion_1) | 1 | WD | Not supported | high | Chỉ dành cho hoạt ảnh. |
| Mô-đun W3C | Cấp | W3C | Trạng thái | Độ tin cậy | Bằng chứng |
|---|
CSS Fonts (css_fonts_3) | 3 | REC | Verified | medium | src/Html/Font/, tests/Unit/Font/ (9) + các test FontResolver |
CSS Fonts (css_fonts_4) | 4 | CR | Verified | high | src/Html/FontFace/, tests/Unit/Html/FontFace/ (31 tệp) |
CSS Fonts (css_fonts_5) | 5 | ED | Unknown | low | font-tech() không có bằng chứng. |
CSS Font Loading (css_font_loading_3) | 3 | WD | Not supported | high | API runtime FontFace của JS; phần nạp ở phía PHP đi qua FontResolver. |
CSS Text (css_text_3) | 3 | CR | Claimed | medium | src/Html/Text/ + 5 test; Phase 0 FULL cho align/indent/spacing, white-space chỉ với <pre>. Bổ sung lùi #618. |
CSS Text (css_text_4) | 4 | ED | Claimed | medium | src/Html/Layout/Hyphenation/ + các test chiến lược xử lý; các thuộc tính L4 khác đang chờ. |
CSS Text Decoration (css_text_decor_3) | 3 | CR | Claimed | medium | src/Html/Text/; Phase 0 FULL nhưng không có fixture chuyên biệt. Bổ sung lùi #619. |
CSS Text Decoration (css_text_decor_4) | 4 | ED | Unknown | low | text-emphasis không có bằng chứng. |
CSS Ruby (css_ruby_1) | 1 | WD | Not supported | high | Chú thích Ruby nằm ngoài phạm vi của v5.x. |
CSS Writing Modes (css_writing_modes_3) | 3 | REC | Claimed | medium | src/Html/Layout/WritingMode/ (7 test) + phân mảnh WPT gồm 140 fixture. vertical-lr đang hoạt động và bật theo mặc định (ADR-027). direction: rtl đã hoạt động — sắp xếp lại hai chiều theo UAX#9 cùng tạo hình ngữ cảnh tiếng Ả Rập, với căn-bắt-đầu trong ô bảng. Việc căn chỉnh khối ngoài bảng và justify chưa được áp dụng, và thuộc tính HTML dir không ánh xạ (hãy dùng CSS direction). Xem Kết xuất HTML tiếng Ả Rập phải-sang-trái. Bổ sung lùi #629. |
CSS Writing Modes (css_writing_modes_4) | 4 | ED | Unknown | low | Không có bằng chứng. |
CSS Speech (css_speech_1) | 1 | CR | Not supported | high | Kết xuất âm thanh không áp dụng được. |
CSS Mobile Text Size Adjustment (css_size_adjust_1) | 1 | ED | Not supported | high | Gợi ý UA cho di động; không áp dụng. |
| Mô-đun W3C | Cấp | W3C | Trạng thái | Độ tin cậy | Bằng chứng |
|---|
CSS Color (css_color_3) | 3 | REC | Claimed | medium | src/Html/Color/, NamedColors.php + các test parser; không có fixture mô-đun. Bổ sung lùi #620. |
CSS Color (css_color_4) | 4 | CR | Claimed | medium | Phân tích cú pháp Lab/LCH/OKLab; chưa khẳng định độ trung thực của không gian màu PDF. |
CSS Color (css_color_5) | 5 | WD | Unknown | low | color-mix() không có bằng chứng. |
CSS Color (css_color_6) | 6 | ED | Unknown | low | Không có bằng chứng. |
CSS Color Adjustment (css_color_adjust_1) | 1 | CR | Not supported | high | color-scheme do UA điều khiển; không áp dụng. |
CSS Color HDR (css_color_hdr_1) | 1 | ED | Not supported | high | HDR không được định tuyến tới không gian màu PDF. |
CSS Images (css_images_3) | 3 | CR | Claimed | medium | src/Html/Gradient/ (linear/radial/conic) + các test parser. |
CSS Images (css_images_4) | 4 | ED | Unknown | low | image()/image-set() không có bằng chứng. |
CSS Images (css_images_5) | 5 | ED | Unknown | low | Không có bằng chứng. |
CSS Image Animation (css_image_animation_1) | 1 | ED | Not supported | high | Chỉ dành cho hoạt ảnh. |
| Mô-đun W3C | Cấp | W3C | Trạng thái | Độ tin cậy | Bằng chứng |
|---|
CSS Selectors (selectors_3) | 3 | REC | Claimed | medium | HasSelectorResolver.php + các test CssRule; fixture chỉ là một corpus.json duy nhất. Bổ sung lùi #627. |
CSS Selectors (selectors_4) | 4 | WD | Claimed | medium | :is()/:where()/:not()/:has() đã được kiểm thử; các tính năng L4 nâng cao vẫn đang chờ. |
CSS Selectors (selectors_5) | 5 | ED | Unknown | low | Không có bằng chứng. |
CSS Non-element Selectors (selectors_nonelement_1) | 1 | WD | Not supported | high | Các hook stylesheet phía trình duyệt; không áp dụng. |
CSS Pseudo-Elements (css_pseudo_4) | 4 | WD | Claimed | medium | src/Html/Pseudo/ (12) + ~10 test renderer; không có bộ test mô-đun. |
CSS Cascading and Inheritance (css_cascade_3) | 3 | REC | Verified | high | src/Html/Cascade/, tests/Unit/Html/Cascade/ (9 tệp) |
CSS Cascading (css_cascade_4) | 4 | CR | Verified | high | Cascade/Layer/ + các test revert/layer |
CSS Cascading (css_cascade_5) | 5 | CR | Verified | high | AtRule/Layer/ + Cascade/Layer/ các bộ test |
CSS Cascading (css_cascade_6) | 6 | WD | Unknown | low | @scope không có bằng chứng. |
CSS Values and Units (css_values_3) | 3 | REC | Claimed | medium | CssValueParser.php + các unit test; fixture chỉ là một corpus.json duy nhất. Bổ sung lùi #626. |
CSS Values and Units (css_values_4) | 4 | CR | Claimed | medium | calc() đã được hiện thực; min()/max()/clamp() lồng nhau chưa có đủ bằng chứng. |
CSS Values and Units (css_values_5) | 5 | ED | Unknown | low | Không có bằng chứng. |
CSS Custom Properties (css_variables_1) | 1 | CR | Claimed | medium | src/Html/CustomProperty/ + test độ phủ phạm vi. |
CSS Custom Properties (css_variables_2) | 2 | ED | Unknown | low | Không có bằng chứng. |
CSS Conditional Rules (css_conditional_3) | 3 | CR | Claimed | medium | @media/@supports đã được kiểm thử phân tích cú pháp; runtime @container được giữ lại (ADR-028). |
CSS Conditional Rules (css_conditional_4) | 4 | ED | Unknown | low | Không có bằng chứng. |
CSS Conditional Rules (css_conditional_5) | 5 | ED | Unknown | low | Không có bằng chứng. |
CSS Conditional Values (css_conditional_values_1) | 1 | ED | Unknown | low | Không có bằng chứng. |
CSS Namespaces (css_namespaces_3) | 3 | REC | Claimed | low | Parser chấp nhận @namespace; không có độ phủ cho việc khớp. |
CSS Style Attributes (css_style_attr_1) | 1 | CR | Claimed | medium | Phân tích cú pháp style nội tuyến trong suốt pipeline; không có fixture chuyên biệt. Bổ sung lùi #622. |
CSS Syntax (css_syntax_3) | 3 | CR | Claimed | medium | CssParser/ + các test grammar/fuzz; không có fixture tuân thủ. Bổ sung lùi #623. |
CSS Nesting (css_nesting_1) | 1 | CR | Claimed | medium | Được nâng cấp từ unknown — CssNestingTest + các test desugar/inner-scan. |
CSS Environment Variables (css_env_1) | 1 | ED | Not supported | medium | Do UA điều khiển env(); không áp dụng. |
CSS Custom Functions and Mixins (css_mixins_1) | 1 | ED | Unknown | low | Không có bằng chứng. |
CSS Extensions (css_extensions_1) | 1 | NOTE | Unknown | low | Không có bằng chứng. |
| Mô-đun W3C | Cấp | W3C | Trạng thái | Độ tin cậy | Bằng chứng |
|---|
CSS Lists and Counters (css_lists_3) | 3 | WD | Claimed | medium | HtmlListRenderer.php/CssCounterManager.php + 18 test; list-style-type chưa được áp dụng cho ol/ul (Phase 0). |
CSS Counter Styles (css_counter_styles_3) | 3 | CR | Claimed | medium | Các kiểu bộ đếm dựng sẵn; @counter-style vẫn đang chờ. |
CSS Generated Content (css_content_3) | 3 | WD | Claimed | medium | CssContentSegment.php + các test pseudo; bộ áp dụng bị bỏ qua (Phase 0). Bổ sung lùi #621. |
CSS Generated Content for Paged Media (css_gcpm_3) | 3 | WD | Claimed | medium | src/Html/Gcpm/ các registry + test bắt chú thích cuối trang. |
CSS Generated Content for Paged Media (css_gcpm_4) | 4 | ED | Unknown | low | Không có bằng chứng. |
| Mô-đun W3C | Cấp | W3C | Trạng thái | Độ tin cậy | Bằng chứng |
|---|
CSS Paged Media (css_page_3) | 3 | WD | Claimed | medium | Page/, PagedMedia/, PageRule.php + các test PageRuleParser/PageMarginBox; tests/Unit/Html/Page/ có 1 tệp. Bổ sung lùi #624. |
CSS Paged Media (css_page_4) | 4 | NOTE | Unknown | low | Các đề xuất cho tương lai. |
CSS Print Profile (css_print) | 1 | NOTE | Claimed | low | Mục tiêu PDF tĩnh tuân theo các ràng buộc in ấn; không có fixture tuân thủ. |
CSS Presentation Levels (css_preslev_1) | 1 | NOTE | Not supported | high | Điều hướng kiểu phần mềm trình chiếu; không áp dụng. |
| Mô-đun W3C | Cấp | W3C | Trạng thái | Độ tin cậy | Bằng chứng |
|---|
CSS Overflow (css_overflow_3) | 3 | WD | Claimed | low | OverflowClip/ClipRect test; việc cắt chỉ áp dụng cho ô của Table (Phase 0). |
CSS Overflow (css_overflow_4) | 4 | ED | Unknown | low | Không có bằng chứng. |
CSS Overflow (css_overflow_5) | 5 | ED | Unknown | low | Không có bằng chứng. |
CSS Overscroll Behavior (css_overscroll_1) | 1 | CR | Not supported | high | Runtime cuộn; không áp dụng. |
CSS Scroll Anchoring (css_scroll_anchoring_1) | 1 | WD | Not supported | high | Runtime cuộn; không áp dụng. |
CSS Scroll Snap (css_scroll_snap_1) | 1 | REC | Not supported | high | Runtime cuộn; không áp dụng. |
CSS Scroll Snap (css_scroll_snap_2) | 2 | WD | Not supported | high | Runtime cuộn; không áp dụng. |
CSS Scrollbars Styling (css_scrollbars_1) | 1 | CR | Not supported | high | Runtime UA; không áp dụng. |
CSS Basic User Interface (css_ui_3) | 3 | REC | Not supported | medium | cursor/resize chỉ thuộc giao diện trình duyệt. |
CSS Basic User Interface (css_ui_4) | 4 | WD | Not supported | high | Runtime UA; không áp dụng. |
CSS Form Control Styling (css_forms_1) | 1 | ED | Not supported | high | PDF tĩnh không kết xuất các widget biểu mẫu. |
CSS View Transitions (css_view_transitions_1) | 1 | WD | Not supported | high | Chỉ dành cho hoạt ảnh. |
CSS View Transitions (css_view_transitions_2) | 2 | ED | Not supported | high | Chỉ dành cho hoạt ảnh. |
CSS Spatial Navigation (css_nav_1) | 1 | NOTE | Not supported | high | Runtime UA; không áp dụng. |
CSS Route Matching (css_navigation_1) | 1 | ED | Not supported | high | Runtime UA; không áp dụng. |
| Mô-đun W3C | Cấp | W3C | Trạng thái | Độ tin cậy | Bằng chứng |
|---|
CSS Table (css_tables_3) | 3 | WD | Verified | high | src/Html/Table/, tests/Unit/Html/Table/ (17) + ~60 test TableParser + 5 PDF chuẩn vàng tổng hợp trong tests/Corpus/tables/ |
| Mô-đun W3C | Cấp | W3C | Trạng thái | Độ tin cậy | Bằng chứng |
|---|
CSS Transforms (css_transforms_1) | 1 | CR | Claimed | medium | Renderer/Transform/ + ApplyTransformCommand.php; không có fixture chuyên biệt. |
CSS Transforms (css_transforms_2) | 2 | ED | Unknown | low | Không có bằng chứng cho các biến đổi 3D. |
CSS Animations (css_animations_1) | 1 | WD | Not supported | high | Timeline hoạt ảnh không áp dụng cho PDF tĩnh. |
CSS Animations (css_animations_2) | 2 | ED | Not supported | high | Nằm ngoài phạm vi. |
CSS Transitions (css_transitions_1) | 1 | WD | Not supported | high | Nằm ngoài phạm vi. |
CSS Transitions (css_transitions_2) | 2 | ED | Not supported | high | Nằm ngoài phạm vi. |
CSS Easing Functions (css_easing_1) | 1 | CR | Not supported | high | Chỉ dành cho hoạt ảnh. |
CSS Easing Functions (css_easing_2) | 2 | ED | Not supported | high | Chỉ dành cho hoạt ảnh. |
Web Animations (web_animations_1) | 1 | WD | Not supported | high | API runtime của trình duyệt. |
Web Animations (web_animations_2) | 2 | ED | Not supported | high | API runtime của trình duyệt. |
Web Animations CSS Integration (web_animations_css_integration) | 1 | ED | Not supported | high | API runtime của trình duyệt. |
Animation Triggers (animation_triggers) | 1 | ED | Not supported | high | Chỉ dành cho hoạt ảnh. |
Pointer-driven Animations (pointer_animations_1) | 1 | ED | Not supported | high | Sự kiện đầu vào ở runtime; không áp dụng. |
Scroll-driven Animations (scroll_animations_1) | 1 | ED | Not supported | high | Runtime cuộn; không áp dụng. |
CSS Animation Worklet (css_animation_worklet) | 1 | ED | Not supported | high | Runtime worklet của trình duyệt. |
| Mô-đun W3C | Cấp | W3C | Trạng thái | Độ tin cậy | Bằng chứng |
|---|
CSS Anchor Positioning (css_anchor_position_1) | 1 | WD | Unknown | low | Không có mã nguồn anchor(). |
CSS Anchor Positioning (css_anchor_position_2) | 2 | ED | Unknown | low | Không có bằng chứng. |
CSS Highlight API (css_highlight_api_1) | 1 | WD | Not supported | high | API runtime của trình duyệt. |
CSS Properties and Values API (css_properties_values_api_1) | 1 | CR | Not supported | high | API runtime của trình duyệt. |
CSS Painting API (css_paint_api_1) | 1 | WD | Not supported | high | Runtime worklet của trình duyệt. |
CSS Typed OM (css_typed_om_1) | 1 | WD | Not supported | high | API runtime của trình duyệt. |
CSSOM (cssom_1) | 1 | WD | Not supported | high | API DOM của trình duyệt. |
CSSOM View (cssom_view_1) | 1 | WD | Not supported | high | API DOM của trình duyệt. |
CSS Will Change (css_will_change_1) | 1 | CR | Not supported | high | Gợi ý tối ưu hóa của trình duyệt. |
CSS Linked Parameters (css_link_params_1) | 1 | ED | Unknown | low | Không có bằng chứng. |
CSS Line Grid (css_line_grid_1) | 1 | NOTE | Unknown | low | Không có bằng chứng. |
CSS Rhythmic Sizing (css_rhythm_1) | 1 | ED | Unknown | low | Không có bằng chứng. |
CSS Round Display (css_round_display_1) | 1 | ED | Not supported | high | Mục tiêu màn hình tròn không áp dụng được. |
CSS Shaders (css_shaders_1) | 1 | NOTE | Not supported | high | Đã bị W3C gỡ bỏ. |
CSS Viewport (css_viewport_1) | 1 | NOTE | Not supported | high | Viewport của UA; không áp dụng. |
| Mô-đun W3C | Cấp | W3C | Trạng thái | Độ tin cậy | Bằng chứng |
|---|
Media Queries (mediaqueries_3) | 3 | REC | Claimed | medium | CssParser/ + các test độ phủ media query; không có fixture chuyên biệt. Bổ sung lùi #625. |
Media Queries (mediaqueries_4) | 4 | CR | Claimed | medium | @media print/prefers-color-scheme được phân tích cú pháp; cú pháp khoảng (range) vẫn đang chờ. |
Media Queries (mediaqueries_5) | 5 | WD | Unknown | low | Không có bằng chứng. |
| Mô-đun W3C | Cấp | W3C | Trạng thái | Độ tin cậy | Bằng chứng |
|---|
CSS Level 2 (css_2_1) | 2.1 | REC | Claimed | low | Đường cơ sở phân tán trên khắp src/Html/; không có fixture tuân thủ đơn lẻ nào. |
CSS Level 2.2 (css_2_2) | 2.2 | NOTE | Claimed | low | Đường cơ sở phân tán; không có fixture chuyên biệt. |
CSS Snapshot 2026 (css_snapshot_2026) | snapshot | NOTE | Claimed | low | Chỉ mục của các mô-đun khác; trạng thái tổng hợp từ các hàng được tham chiếu. |
Các mô-đun W3C này xuất hiện trong tập đặc tả nhưng nằm ngoài pipeline kết xuất CSS. Khi phù hợp, các trang tính năng tương ứng sẽ liên kết tới chúng.
| Mô-đun W3C | W3C | Trạng thái | Độ tin cậy | Ở đâu |
|---|
W3C SVG 1.1 (svg_1_1) | REC | Claimed | low | Tập con vẽ SVG nội tuyến trong Renderer/PaintCommand/; không có fixture dành cho ma trận CSS. |
W3C SVG 2.0 (svg_2_0) | CR | Unknown | low | Thuộc phạm vi pipeline Premium; không có bằng chứng ở core. |
W3C PNG 3rd Edition (png_3) | WD | Claimed | low | Giải mã PNG trong mô-đun Graphics/ (bên ngoài HTML/CSS). |
W3C WOFF 1.0 (woff_1_0) | REC | Claimed | low | WOFF thông qua stack Font; không có fixture dành cho ma trận CSS. |
W3C WOFF 2.0 (woff_2_0) | REC | Claimed | low | WOFF2 thông qua stack Font; không có fixture dành cho ma trận CSS. |
W3C WCAG 2.2 (wcag_2_2) | REC | Verified | medium | src/Html/Aam/, tests/Unit/Accessibility/HtmlAam/ (4 tệp) — PDF/UA-2. |
W3C WAI-ARIA 1.2 (wai_aria_1_2) | REC | Verified | medium | tests/Unit/Accessibility/HtmlAam/ (4 tệp). |
W3C ARIA Bundle (w3c_aria_bundle) | REC | Claimed | low | Gói hướng dẫn; bằng chứng cụ thể nằm ở hàng WAI-ARIA. |
W3C AAM Bundle (w3c_aam_bundle) | NOTE | Claimed | low | Con trỏ tới gói; bằng chứng nằm ở các hàng WAI-ARIA/WCAG. |
W3C ATAG 2.0 (atag_2_0) | REC | Not supported | high | Khả năng tiếp cận của công cụ soạn thảo; không áp dụng. |
W3C XSL 1.1 (xsl_1_1) | REC | Not supported | high | Mô hình định dạng song song XSL-FO; chưa được hiện thực. |
W3C XSD 1.1 Part 1 (xsd_1_1_part1) | REC | Not supported | high | Lược đồ XML; không áp dụng. |
W3C XSLT 3.0 (xslt_3_0) | REC | Not supported | high | Ngôn ngữ biến đổi; không áp dụng. |
Resize Observer (resize_observer_1) | CR | Not supported | high | API runtime của trình duyệt. |
Để một hàng nâng cấp từ claimed → verified:
- Một bộ fixture chuyên biệt ở cấp thuộc tính nằm trong
tests/Unit/Html/<Module>/ (≥3 tệp) hoặc một phân mảnh tập WPT có giá trị (≥50 fixture) trong tests/Wpt/corpus/ được nâng cấp thành một test có khẳng định.
- Fixture khẳng định hành vi của NextPDF so với văn phạm W3C cho các thuộc tính chính của mô-đun.
- Fixture vượt qua một cách tất định theo một
NextPDF\Testing\ReproducibilityProfile (structural cho các fixture có khẳng định; bitwise chỉ khi đã có đường cơ sở PDF chuẩn vàng cho từng mô-đun).
- Trường
nextpdf_status của hàng trong tệp css-support-matrix-data.yaml trong repo chuyển thành verified, đồng thời fixture_path, repro_profile, và confidence được cập nhật.
Để một hàng nâng cấp từ unknown → claimed:
- Một đợt kiểm toán xác nhận bằng chứng hiện thực trong
src/Html/ (có đường dẫn trong evidence + notes).
- Một issue bổ sung lùi được mở và liên kết trong
backfill_issue.
- Báo cáo trung thực của ma trận CSS (
_css-matrix-truth-report.md, trong repo) — chênh lệch kiểm toán before/after, phân bố độ tin cậy, nhật ký khử thổi phồng.
- Đợt kiểm toán độ phủ thuộc tính CSS (
architecture/css-property-coverage-audit.md, trong repo) — đợt kiểm toán nội bộ bốn trạng thái cho từng thuộc tính (Policy/Parsed/Applied/Rendered).
- ADR-027 v8.0.0 BREAKING (
architecture/adr/ADR-027-v8-breaking.md, trong repo) — nâng cấp quy trình bắt tay loại bỏ của vertical-lr (khả năng được giữ lại).
- ADR-028 v9.0.0 BREAKING (
architecture/adr/ADR-028-v9-breaking.md, trong repo) — gỡ bỏ dấu enum của Grid/Subgrid/@container (các khả năng được giữ lại).
- Issue theo dõi bổ sung lùi: https://github.com/nextpdf-labs/nextpdf/issues/614