Engelli bireyler için erişilebilirlik yalnızca bir trend değil, birçok ülkede yasal bir zorunluluktur. Amerika Birleşik Devletleri'nde Engelli Amerikalılar Yasası (ADA) yürürlükte olup, Avrupa Birliği'nde ise Erişilebilirlik Direktifi (EN 301 549 standardı ile desteklenmektedir) geçerlidir. Her iki belge de kamu kurumlarını ve özel şirketleri, yardımcı teknolojiler tarafından algılanabilen formatlarda bilgi sağlamakla yükümlü kılıyor.
Erişilebilirlik hususları olmayan standart bir PDF, yalnızca bir sayfadaki görsel öğelerden oluşan bir koleksiyondur. Ekran okuyucular (ekran içeriğini seslendiren ve görme bozukluğu olan kişiler tarafından kullanılan programlar) başlıkları, tabloları veya dekoratif çerçeveleri ayırt edemez. Bu sorunu çözmek için Uluslararası Standardizasyon Örgütü (ISO), resmi olarak ISO 14289-1 olarak adlandırılan PDF/UA (Evrensel Erişilebilirlik için PDF) standardını geliştirdi. Bu, ISO tarafından yayımlanan ilk tam erişilebilir standarttır ve dağıtılan belgenin kendisi PDF/UA ile uyumludur.
FastReport .NET rapor oluşturucusunda 2027.1 sürümünden itibaren PDF/UA-1 desteği uygulanarak geliştiricilerin üçüncü taraf araçlara ihtiyaç duymadan erişilebilir belgeler oluşturması sağlandı.
Görsel olarak, PDF/UA belgesi standart bir PDF'den ayırt edilemez: aynı sayfaları, yazı tiplerini, renkleri ve görselleri içerir. Aradaki fark dosyanın içindedir—bir "yapısal omurga" içerir: ekran okuyucuya bir başlığın veya tablonun nerede olduğunu, belirli hücrelerde hangi içeriğin bulunduğunu, görüntünün nerede olduğunu ve neyi tasvir ettiğini, bağlantının nerede başlayıp bittiğini ve belgenin hangi sırada olduğunu bildiren bir etiket yapısı okunmalı. Çizgiler, çerçeveler ve sayfa arka planları gibi dekoratif öğeler ayrı olarak işaretlenir; böylece ekran okuyucu bunları seslendirmek yerine görmezden gelir.
Bir raporu PDF olarak dışa aktarmak için tasarımcı araç çubuğundaki "Kaydet" düğmesini kullanın ve açılır menüden "Adobe Acrobat..." seçeneğini belirleyin.
Dışa aktarma iletişim kutusunda üç parametre yapılandırılmalıdır:
Bu, dışa aktarma yapılandırmasını tamamlar; oluşturulan dosya artık PDF/UA-1 standardıyla tamamen uyumludur.
PDF/UA'ya dışa aktarma, rapor içeriğinden belge yapısını otomatik olarak oluşturur:
| Rapor Öğesi | Belge Çıktısı |
| Metin nesnesi | Paragraf |
| Masa | Tam tablo yapısı: satırlar, başlıklar ve veriler (ilk satır ve ilk sütun başlık olarak kabul edilir) |
| Görüntü | Alternatif metin içeren şekil (metin belirtilmemişse nesne adı kullanılır, bu önerilmez) |
| Köprü | Bağlantı (Ekran okuyucu URL yerine bağlantı metnini seslendirir) |
| Dijital imza alanı | Form öğesi |
| Rolü olmayan çizgiler ve şekiller, boş metin nesneleri, sayfa arka planları, filigranlar ve hücre kenarlıkları. | Dekoratif öğe (Eser) — ekran okuyucu bunu atlar |
Bu yaklaşım, herhangi bir ek düzen ayarı gerektirmeden çoğu raporu kapsar; dışa aktarma iletişim kutusunda PDF/UA'yı seçmeniz yeterlidir.
Otomatik yapı makul bir minimum değeri temsil eder, ancak rapor geliştiricileri bunu iyileştirebilir. Rapor nesnesi özelliklerine iki özelliğe sahip yeni bir PDF/UA kategorisi eklendi:
| Değer | Amaç |
| H1...H6 | Belge başlıkları. Ekran okuyucu, okuyucunun belgede gezinmesine izin vererek onlardan bir içindekiler tablosu oluşturur |
| P | Normal paragraf (metin için varsayılan) |
| Şekil | Anlamlı bir resim veya grafik |
| Tablo, TR, TD, İNCİ | Tablo yapısı |
| Form | Form alanı |
| Bağlantı | Köprü |
SemanticRole = "H1" değerini ayarlayın.AltText = "Company logo".SemanticRole = "Figure"ve sağlayın AltText; Atanmış bir rol olmadan, şekil bir dekorasyon olarak ele alınır ve seslendirilmez.Önemli: Bir rol açıkça tanımlanmışsa, bu rolün söz konusu nesne türü için uygunluğu doğrulanmaz. Doğru rol atamasının sorumluluğu tamamen rapor geliştiricisine aittir.
Aynı sonuç programlı olarak elde edilebilir. Aşağıdaki örnekte, iki nesne için roller ve alternatif metinle birlikte PDF / UA standardı, belge başlığı ve belge dili tanımlanmıştır:
// Raporu yükleyin Report report = new Report(); report.Load(@"C:\Reports\Invoice.frx"); // Rolleri ve alternatif metni atayın ((TextObject)report.FindObject("ReportTitle")).SemanticRole = "H1"; ((PictureObject)report.FindObject("Logo")).AltText = "Şirket logosu"; // PDF/UA'ya aktarma PDFExport pdfExport = new PDFExport(); PDF dışa aktarma.PdfCompliance = PDFExport.PdfStandart.Pdf_UA; PDF dışa aktarma.Title = "Başlık"; PDF dışa aktarma.Belge dili = "de-DE"; rapor.Prepare(); report.Export(pdfExport, "Invoice.pdf");
Herhangi bir PDF/UA belgesi ücretsiz doğrulama araçları kullanılarak doğrulanabilir:
FastReport .NET'teki PDF/UA-1 için yerleşik destek, üçüncü taraf araçlara güvenmeden tamamen erişilebilir belgelerin oluşturulmasını sağlar. Belge yapısı etiketlemesi otomatik olarak işlenir, yani varsayılan olarak rapor geliştiricilerinin yalnızca anlamlı görüntüler için alternatif metinler sağlaması ve dışa aktarma ayarlarında PDF/UA standardını seçmesi gerekir. Gerekirse, bu etiketler doğrudan nesne özellikleri aracılığıyla daha da geliştirilebilir.