مطابقة PDF/UA-2: البنية الموسومة التي يُصدرها NextPDF وفق ISO 14289-2
لمحة سريعة
قسم بعنوان «لمحة سريعة»بيان الحدود. يُصدِر NextPDF البنية الموسومة التي تدعم إنشاء مستندات ميسّرة الوصول؛ لكنه لا يعلن المطابقة لمعيار PDF/UA-2 — أداة التحقّق هي التي تُقرّر ذلك.
PDF/UA-2 هو ISO 14289-2:2024، وهو ملف تعريف لإمكانية الوصول مبني على PDF 2.0 الموسوم. يُصدِر NextPDF Core شجرة البنية والمحتوى الموسوم ولغة الفهرس والبنية ومعرّف pdfuaid عبر Document::enableTaggedPdf(). تُنشئ المكتبة البنية اللازمة لإمكانية الوصول؛ أمّا أداة التحقّق من PDF/UA، مثل verapdf --flavour ua2، فهي التي تُقرّر المطابقة. يُعرّف القسم §8.1 من ISO 14289-2 المطابقة بأنها متطلّبات على صيغة الملف يجب أن يستوفيها المستند وفق تقييم أداة التحقّق، لا بوصفها ادّعاءً يصرّح به المُنتِج.
التثبيت
قسم بعنوان «التثبيت»composer require nextpdf/core:^3يُعدّ وَسْم PDF/UA-2 قدرة من قدرات Core (security.tagged_pdf). لا تحتاج إلى حزمة Premium لإصدار البنية الموسومة نفسها.
نظرة مفاهيمية
قسم بعنوان «نظرة مفاهيمية»يضبط Document::enableTaggedPdf(string $lang = 'en', ?ConformancePolicy $policy = null) الوضع ConformanceMode::PdfUa2 ويربط TaggedContentEmitter. ويُعدّ هذا الوضع المصدر الوحيد للحقيقة بشأن ما إذا كان المستند موسومًا وفق المواصفة؛ ثم يفي الكاتب بالالتزامات البنيوية التي يفرضها ISO 14289-2:
- يُوسَم المحتوى الفعلي — §8.2.2: يُدرَج كل جزء من المحتوى الفعلي غير المُصنَّف كقطعة أثرية ضمن البنية المنطقية، وتُوسَم القطع الأثرية بوصفها كذلك. ويستند ذلك إلى البنية الموسومة لـ PDF في القسم §14.7 من ISO 32000-2 (
StructTreeRootوعناصر البنية ومعرّفات المحتوى الموسوم MCIDs). - تُعلَن اللغة الطبيعية — §8.4.4: يحمل المستند وتحوّلات اللغة قيمة
Lang. معConformancePolicy::strictUa2()، يُرفض وسم BCP 47 المُشوَّه عند حدود واجهة البرمجة بأسلوب الفشل المبكّر، بدلًا من إسقاطه بصمت وقت الكتابة. - تحمل الأشكال أوصافًا بديلة — §8.5.1: لكل عنصر بنية من نوع
Figureوصف بديل. - تربط الجداول الترويسات بالبيانات — §8.2.5.26: يُعبَّر بنيويًا عن علاقة خلايا header/data في الجدول.
يُصدِر NextPDF هذه البُنى، لكنه لا يُجري تقييم المطابقة الوارد في القسم §8.1؛ فذلك دور أداة التحقّق، والمعيار يحتفظ به لها.
سطح واجهة البرمجة
قسم بعنوان «سطح واجهة البرمجة»| الدالة | الأثر |
|---|---|
enableTaggedPdf(string $lang = 'en', ?ConformancePolicy $policy = null): static | يضبط ConformanceMode::PdfUa2، ويربط TaggedContentEmitter، ويتحقّق من $lang حسب السياسة. يرمي InvalidConfigException عندما تفرض السياسة التحقّق من Lang ويكون $lang غير صالح. |
beginTag()/endTag() | يوفّر بنية يدوية للمحتوى غير المكتوب بـ HTML؛ فتصبح أنواع الحاويات عناصر تجميع، وتحصل الأنواع الطرفية على معرّفات MCIDs. |
ConformanceMode::requiresPdfUa2PageTabs(): bool | يعيد صحيحًا مع PdfUa2 — ويقود ذلك فرض /Tabs /S على الصفحات. |
مثال برمجي — بداية سريعة
قسم بعنوان «مثال برمجي — بداية سريعة»<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Core\Document;use NextPDF\Conformance\ConformancePolicy;
$out = getenv('NEXTPDF_COOKBOOK_OUTPUT') ?: __DIR__ . '/accessible.pdf';
$doc = Document::createStandalone();$doc->enableTaggedPdf('en', ConformancePolicy::strictUa2()); // fail-fast Lang$doc->setTitle('Accessible report 2026');$doc->writeHtml('<h1>Quarterly report</h1><p>Body text.</p>' . '<img src="chart.png" alt="Revenue rose 12% quarter on quarter">');$doc->save($out);
echo "Wrote {$out} — validate: verapdf --flavour ua2 {$out}\n";مثال برمجي — إنتاجي
قسم بعنوان «مثال برمجي — إنتاجي»شغّل بوابة الإنتاج verapdf --flavour ua2 out.pdf، واجعل عملية البناء تفشل عندما تُبلّغ أداة التحقّق عن مخالفات. يؤكّد اختبار التكامل tests/Integration/Accessibility/VeraPdfUa2GoldenTest.php أن التثبيت الذهبي لمسار HTML←PDF الموسوم يجتاز veraPDF UA-2 (يُتخطّى عند غياب veraPDF). حُكم أداة التحقّق هو بوابة القبول، ويكون خَرْج المُصدِر هو مُدخَلها.
الحالات الحدّية والمزالق
قسم بعنوان «الحالات الحدّية والمزالق»- فعِّل أولًا. استدعاء
enableTaggedPdf()بعدwriteHtml()لا يوسم بأثر رجعي المحتوى المكتوب سابقًا. - اللغة الصارمة. مرّر
ConformancePolicy::strictUa2()لرفض وسم BCP 47 المُشوَّه عند حدود واجهة البرمجة بدلًا من الاكتفاء باكتشافه لاحقًا عند التحقّق بـ veraPDF. - إعادة التفعيل المتعادلة. استدعاؤها مرّتين يحدّث اللغة دون إعادة بناء شجرة بنية مأهولة.
- مستند موسوم فارغ. المستند الموسوم الفارغ لا يعلن مطابقته لـ PDF/UA-2 (
EmptyTaggedPdfDoesNotAdvertisePdfUa2Test): لا تُصدَر العلامة لمستند بلا محتوى فعلي، فلا يبالغ الملف في الادّعاء.
الأداء
قسم بعنوان «الأداء»يتناسب إصدار شجرة البنية طرديًا مع عدد العناصر. الميزانية هي زمن جداري ≤ 1500 ms وذروة ≤ 64 MB لتقرير نموذجي.
ملاحظات أمنية
قسم بعنوان «ملاحظات أمنية»وَسْم إمكانية الوصول بنيوي، وليس ضابطًا أمنيًا. فهو يكشف، بحكم التصميم، البنية المنطقية للمستند للتقنيات المساعِدة. لا تحمل شجرة الوسوم أي بُعد يتعلّق بالسرّية.
تخطيط PDF/UA-2
قسم بعنوان «تخطيط PDF/UA-2»| التزام PDF/UA-2 | بند ISO 14289-2 | إصدار NextPDF |
|---|---|---|
| وَسْم المحتوى الفعلي ضمن البنية المنطقية | §8.2.2 | TaggedContentEmitter + StructureTree |
| إعلان لغة المستند/البنية | §8.4.4 | الفهرس /Lang، مع التحقّق عبر Bcp47Validator |
| الوصف البديل للشكل | §8.5.1 | alt ← /Alt على عنصر Figure |
| ربط header/data في الجدول | §8.2.5.26 | بنية TR/TH/TD من جداول HTML |
الوسم ← الإحالة المرجعية إلى القسم §14.9 من ISO 32000-2
قسم بعنوان «الوسم ← الإحالة المرجعية إلى القسم §14.9 من ISO 32000-2»يُبنى PDF/UA-2 فوق نموذج PDF الموسوم في ISO 32000-2. تُطابَق عناصر البنية التي يُصدرها NextPDF مع البنية المنطقية في القسم §14.7 من ISO 32000-2 (StructTreeRoot وعناصر البنية ومعرّفات MCIDs) ومع فضاء أسماء البنية المعياري المُعرَّف لـ PDF 2.0. وتربط خريطة الأدوار عناصر HTML (h1, p, table) بأنواع البنية المعيارية كي تتمكّن أداة التحقّق من UA-2 من التعرّف عليها.
تخطيط WCAG 2.2
قسم بعنوان «تخطيط WCAG 2.2»البنية الموسومة هي الركيزة التقنية لمعايير النجاح في إرشادات الوصول إلى محتوى الويب (WCAG) 2.2 — 1.1.1 (البدائل غير النصية، عبر القسم §8.5.1 للشكل /Alt)، و1.3.1 (المعلومات والعلاقات، عبر شجرة البنية)، و1.3.2 (التسلسل ذو المعنى، عبر ترتيب القراءة). إصدار البنية ضروري لكنه غير كافٍ للمطابقة لـ WCAG؛ فتدقيق إمكانية الوصول هو الذي يقرّر ذلك، لا المكتبة.
سلوك وضع FIPS
قسم بعنوان «سلوك وضع FIPS»لا يُجري إصدار PDF/UA-2 أي تعمية. ولا أثر لوضع المعايير الفيدرالية لمعالجة المعلومات (FIPS) على مسار البنية الموسومة.
المطابقة
قسم بعنوان «المطابقة»| الادّعاء | المواصفة | البند | reference_id |
|---|---|---|---|
يُحدَّد إصدار PDF/UA عبر فضاء أسماء مخطّط pdfuaid (الجدول 1). | ISO 14289-2 | §5 | |
| تفرض المطابقة مع PDF/UA-2 متطلّبات على صيغة الملف يجب أن يستوفيها المستند (تُقيّم أداة التحقّق المطابقة؛ ولا يصرّح بها المُنتِج). | ISO 14289-2 | §8.1 | |
| يجب وَسْم المحتوى الفعلي ضمن البنية المنطقية. | ISO 14289-2 | §8.2.2 | |
| يجب إعلان اللغة الطبيعية للمستند. | ISO 14289-2 | §8.4.4 | |
| تتطلّب عناصر Figure وصفًا بديلًا. | ISO 14289-2 | §8.5.1 | |
| يجب أن تربط بنية الجدول خلايا الترويسة والبيانات. | ISO 14289-2 | §8.2.5.26 | |
| تستند البنية الميسَّرة إلى البنية المنطقية الموسومة لـ PDF في ISO 32000-2. | ISO 32000-2 | §14.7.2 |
الاستشهادات مؤشّرات تشير بمعرّف البند وبـ reference_id إلى مَجموعة التحقّق. ولا يُستنسَخ أي نص من المعيار.