aidisclose.js huwa l-iskript fuq is-sit li jaqra l-manifest ai-disclosure.json tiegħek u juri d-divulgazzjonijiet li titlob il-liġi: banner ta' interazzjoni għall-chatbots, notifika persistenti tal-kontenut, tikketti viżibbli fuq il-media mmarkata, u metadata tal-paġna li tinqara mill-magni. Huwa mingħajr dipendenzi, madwar 8.2 KB gzipped, u jissodisfa l-WCAG 2.1 AA.
Din il-paġna hija r-referenza sħiħa għall-konfigurazzjoni u l-personalizzazzjoni. Għall-passi tal-installazzjoni pjattaforma b'pjattaforma (WordPress, Shopify, Webflow, tag managers), ara l-gwida tal-installazzjoni. Tista' wkoll taqra dan id-dokument bħala raw markdown.
Ħarsa ġenerali
Tag wieħed tal-iskript imexxi kollox. Mat-tagħbija s-snippet iġib il-manifest tiegħek, imbagħad juri biss dak li jiddikjara l-manifest:
- Banner ta' interazzjoni, għal sistema
conversational: notifika li l-viżitatur qed jitkellem ma' IA. - Notifika tal-kontenut, għal sistema
content-generationbiscope: sitejewscope: page: chip żgħir persistenti. Meta tikklikkjah jinfetaħ spjegazzjoni qasira bit-test tan-notifika, l-isem tal-pubblikatur tiegħek u l-iskop tas-sistema mill-manifest, u link għall-fajl tal-manifest; it-test tan-notifika jorbot ma' spjegazzjoni f'lingwaġġ sempliċi fuq aidisclose.io. Il-badge "magħmul mill-bnedmin" jiftaħ l-istess karta bl-isem tal-pubblikatur. - Tikketti għal kull element, fuq kwalunkwe element li timmarka bi
data-ai-content: badge "IA" viżibbli, flimkien ma'data-digital-source-typeli tinqara mill-magni. - Metadata tal-paġna:
<link rel="ai-disclosure">u<meta name="ai-disclosure">li jindikaw il-manifest tiegħek. - Badge "magħmul mill-bnedmin", meta l-manifest jissettja
noAiDeclared.
Dak kollu ta' hawn taħt huwa fakultattiv. Mingħajr ebda konfigurazzjoni s-snippet jaqra l-/.well-known/ai-disclosure.json tiegħek, juri fil-lingwa tal-viżitatur f'28 lokal, isegwi l-preferenza ċara jew skura tas-sistema operattiva, u jitqiegħed fuq il-barr tal-kunsens tal-cookies magħrufa biex it-tnejn qatt ma jitgħattew ma' xulxin.
Installazzjoni
Żid it-tag darba, fil-mudell komuni tas-sit tiegħek, fl-header tat-tema, jew fit-tag manager, u jinġarr ma' kull paġna. Jista' joqgħod fil-<head> jew kullimkien qabel il-</body>; huwa deferred, allura l-pożizzjoni ma tibdilx l-imġiba:
<script src="https://cdn.aidisclose.io/v1/aidisclose.js" defer></script>
Mingħajr attributi s-snippet jaqra l-manifest f'https://YOURDOMAIN/.well-known/ai-disclosure.json. Jekk il-pjattaforma tiegħek ma tistax isservi fajl fl-għerq tad-dominju, ospita l-manifest ma' AIDisclose u indika t-tag lejh bil-key:
<script src="https://cdn.aidisclose.io/v1/aidisclose.js" data-aidisclose="YOUR_SITE_KEY" defer></script>
Jekk il-manifest ma jistax jintlaħaq, is-snippet jirreġistra twissija fil-console u ma juri ebda notifika mmexxija mill-manifest, allura falliment tal-fetch qatt ma juri notifika mbassra. Il-metadata tal-paġna, it-tikketti [data-ai-content] tiegħek, u banner imġiegħel bi data-banner="true" xorta jintwerew.
Konfigurazzjoni
Hemm tliet modi kif tikkonfigura s-snippet. Uża liema wieħed li jaqbel mal-pjattaforma tiegħek.
1. Attributi fuq it-tag tal-iskript. L-iktar triq sempliċi, mingħajr kodiċi żejjed:
<script src="https://cdn.aidisclose.io/v1/aidisclose.js"
data-theme="light" data-lang="fr" defer></script>
2. Oġġett globali ta' konfigurazzjoni. Iddefinixxi window.AIDiscloseConfig qabel ma jaħdem l-iskript. Jesponi s-sett sħiħ tal-għażliet, inklużi l-għażliet tas-selector li m'għandhomx forma ta' attribut:
<script>
window.AIDiscloseConfig = {
theme: 'light',
mountSelector: '#ai-disclosure-slot',
triggerSelector: '#chat-launcher',
};
</script>
<script src="https://cdn.aidisclose.io/v1/aidisclose.js" defer></script>
3. Inizjalizzazzjoni manwali. Żid data-manual biex tiddifferixxi l-bidu awtomatiku, imbagħad sejjaħ AIDisclose.init() inti stess ladarba l-app tiegħek tkun lesta (utli fis-single-page apps):
<script src="https://cdn.aidisclose.io/v1/aidisclose.js" data-manual defer></script>
<script>
AIDisclose.init({ theme: 'dark', persistentChip: false });
</script>
Jekk ikun preżenti aktar minn sors wieħed, window.AIDiscloseConfig jirbaħ: jieħu preċedenza kemm fuq l-attributi tat-tag tal-iskript kif ukoll fuq kwalunkwe oġġett mgħoddi lil AIDisclose.init().
Referenza tal-għażliet
Il-firxa tal-għażliet hija stabbli għal-linja 1.x.
| Option | Attribute | Values | Default | Effect |
|---|---|---|---|---|
theme |
data-theme |
light, dark, auto |
auto |
Skema tal-kuluri. auto isegwi l-preferenza tas-sistema operattiva tal-viżitatur. |
siteKey |
data-aidisclose |
string | none | Għabbi l-manifest ospitat minn AIDisclose għal din il-key minflok il-fajl well-known. |
manifestUrl |
data-manifest-url |
URL | /.well-known/ai-disclosure.json |
Aqra l-manifest minn URL personalizzat. |
lang |
data-lang |
kodiċi BCP-47 | il-<html lang> tal-paġna, inkella l-lingwa tal-viżitatur |
Imponi lingwa tal-wiri. |
banner |
data-banner |
true, false |
auto | Imponi l-banner ta' interazzjoni mixgħul jew mitfi. Meta ma jkunx issettjat, jidher biss meta l-manifest tiegħek jiddikjara sistema conversational (chatbot). |
persistentChip |
— | true, false |
true |
Uri jew ostakola l-mini-chip imnaqqas tal-banner ta' interazzjoni (il-pillola żgħira li għaliha jitnaqqas). |
alwaysShow |
— | true, false |
false |
Uri l-banner mill-ġdid f'kull żjara, billi tinjora ċ-ċaħda tal-viżitatur (mfakkra fil-localStorage tal-browser). |
mountSelector |
— | selector CSS | none | Uri l-banner inline ġewwa dan l-element minflok l-overlay fiss ta' isfel. |
triggerSelector |
— | selector CSS | none | Uri l-banner ta' interazzjoni biss wara li l-viżitatur jikklikkja dan l-element, bħal launcher tal-chat. Il-paġni mingħajr element li jaqbel ma juru ebda banner, allura chatbot li jeżisti fuq xi paġni jiddivulga biss hemmhekk. Il-launchers injettati wara t-tagħbija xorta jaħdmu. Viżitatur li ċaħad il-banner qabel xorta jara l-mini-chip. |
adjacentSelector |
— | selector CSS | none | Poġġi tikketta ħdejn element li ma tistax timmarka direttament, bħal widget magħluq jew iframe. |
observe |
— | true, false |
true |
Osserva l-DOM għal kontenut miżjud aktar tard u ittikkettalu. Issettja false fuq paġni kompletament statiċi. |
beaconUrl |
— | URL | none | Ibgħat beacon anonimu {siteKey, flag} fuq avvenimenti notevoli. Ebda cookies, ebda data personali. |
data-manual mhijiex valur ta' għażla: il-preżenza tagħha fuq it-tag tiddifferixxi l-bidu awtomatiku biex tkun tista' ssejjaħ AIDisclose.init() inti stess.
Tema u dehra
Issettja l-iskema integrata bi theme (light, dark, jew auto). Biex taqbel eżatt mal-marka tiegħek, issostitwixxi l-propjetajiet CSS personalizzati tas-snippet fl-istylesheet tiegħek stess. Huma definiti fuq .aid-banner, .aid-chip:
| Variable | Controls |
|---|---|
--aid-bg |
Sfond |
--aid-fg |
Test |
--aid-line |
Bordura |
--aid-btn |
Bordura tal-buttuna taċ-ċaħda |
--aid-btnfg |
Test tal-buttuna taċ-ċaħda |
--aid-hov |
Hover tal-buttuna taċ-ċaħda |
.aid-banner, .aid-chip {
--aid-bg: #0b1020;
--aid-fg: #e8eaed;
--aid-line: #2a2f36;
}
Is-snippet ma jġorr ebda regola !important u juża selectors b'speċifiċità baxxa, allura l-CSS tiegħek jirbaħ. Il-hooks tal-klassijiet huma .aid-banner, .aid-chip, .aid-badge, .aid-badge-inline, .aid-wrap, .aid-ai (notifika tal-kontenut), u .aid-hm ("magħmul mill-bnedmin"). Ibdel l-istil tal-ispazjar, ir-radius, u d-dell fuq dawn direttament.
B'mod awtomatiku l-banner huwa overlay fiss fin-naħa t'isfel tal-viewport. Issettja mountSelector biex turih inline u statiku ġewwa element li tikkontrolla, biex joqgħod fil-layout tiegħek stess.
Kliem personalizzat
Il-banner u l-chip iġorru test lokalizzat preċiż f'28 lingwa mill-bidu. Biex tissostitwixxi l-kliem:
- Għal kull lingwa, fil-manifest. Żid
disclosure.textsma' sistema, indiċjat bil-kodiċi tal-lingwa. Is-snippet juża t-test tiegħek għal-lingwa tal-viżitatur li taqbel:
{
"disclosure": {
"texts": { "en": "Some copy on this page was drafted with AI.", "fr": "Une partie du texte a été rédigée avec de l'IA." }
}
}
- Għal kull element. Żid
data-ai-labelma' element immarkat biex tissettja t-tikketta ta' dak il-badge.
Meta sistema tissettja editorialResponsibility.humanReview: true u l-kontenut tagħha mhuwiex kompletament iġġenerat jew manipulat mill-IA, in-notifika awtomatikament tinqara "megħjuna mill-IA, riveduta mill-bniedem" fil-lingwa tal-viżitatur, minflok "iġġenerata mill-IA".
Immarkar tal-kontenut tal-IA tiegħek
Is-snippet jittikketta biss dak li timmarka. Żid data-ai-content ma' kwalunkwe element iġġenerat mill-IA:
<img data-ai-content src="/img/generated.webp" alt="…">
<p data-ai-content>AI-drafted summary…</p>
<video data-ai-content src="/clip.mp4"></video>
Kull element immarkat jirċievi badge "IA" viżibbli u data-digital-source-type li tinqara mill-magni (b'default ta' trainedAlgorithmicMedia, valur kompatibbli mal-IPTC u schema.org). Żid data-ai-label għal test tat-tikketta personalizzat, jew issettja data-digital-source-type inti stess biex tkun aktar speċifiku.
Għall-IA li ma tistax tannota direttament, bħal widget tal-chat ta' parti terza f'iframe magħluq, uża adjacentSelector biex tqiegħed tikketta ħdejh, jew triggerSelector biex tikxef il-banner ta' interazzjoni meta jinfetaħ il-widget.
Notifika ta' ġenerazzjoni tal-kontenut tista' tkopri s-sit kollu (disclosure.scope: "site") jew paġni speċifiċi (disclosure.scope: "page" b'lista disclosure.pages ta' globs tal-path, bħal /blog/*). Match fuq livell ta' paġna jieħu preċedenza fuq wieħed fuq livell ta' sit, u sistema fuq livell ta' paġna mingħajr path li jaqbel ma turi xejn hemmhekk.
Single-page apps u frameworks
Is-snippet josserva l-DOM b'MutationObserver u jerġa' jevalwa n-notifika applikabbli mal-bidliet fir-rotta, allura kontenut u paġni miżjuda wara t-tagħbija xorta jiġu ttikkettati. F'SPA:
- Żomm
observefid-default tiegħu (true) biex il-kontenut renderjat mill-klijent jinqabad. - Jekk tissuġġetta l-inizjalizzazzjoni għad-disponibbiltà tal-app, żid
data-manualu sejjaħAIDisclose.init()wara li l-framework tiegħek jimmonta. - In-notifiki fuq livell ta' paġna jaġġornaw awtomatikament kif tinbidel ir-rotta; ebda sejħa għal kull rotta mhi meħtieġa.
Issettja observe: false biss fuq paġni kompletament statiċi fejn xejn ma jiġi injettat wara t-tagħbija.
Content Security Policy
Jekk tinforza Content Security Policy, ippermetti s-snippet b'mod espliċitu.
Importanti
script-src 'self' strett jimblokka s-snippet tal-CDN fis-skiet, u d-divulgazzjonijiet qatt ma jintwerew. Din hija l-aktar raġuni komuni għaliex sit iddikjarat b'mod korrett ma jilħaqx il-Livell 2.
script-src: żidhttps://cdn.aidisclose.io, jew ospitaaidisclose.jsinti stess mill-oriġini tiegħek u żomm'self'.style-src: is-snippet jinjetta l-istili tiegħu inline, allura'unsafe-inline'huwa biżżejjed. Jekk ma tippermettix stili inline, jaqleb għat-tagħbija ta'aidisclose.cssmid-direttorju tal-iskript, allura ippermetti wkollhttps://cdn.aidisclose.iofistyle-src(jew ospita dak il-fajl inti stess flimkien mal-iskript).connect-src: il-fetch tal-manifest huwa same-origin għall-fajl well-known u ma jeħtieġ xejn żejjed. Jekk tgħabbi l-manifest bil-key, ippermettihttps://cdn.aidisclose.io.
Il-manifest jinġieb mingħajr kredenzjali, allura servih pubblikament: endpoint li jitlob cookies jew awtentikazzjoni mhux se jirċevihom.
Verżjonar u integrità
Il-CDN iservi tliet binarji:
/v1/aidisclose.jsisegwi l-aħħar release 1.x. Rakkomandat għall-biċċa l-kbira tas-siti./v1.0.0/aidisclose.jshuwa verżjoni fissa u immutabbli li tista' tippinja, bi Subresource Integrity:
<script src="https://cdn.aidisclose.io/v1.0.0/aidisclose.js"
integrity="sha384-…" crossorigin="anonymous" defer></script>
/latest/aidisclose.jsdejjem isegwi l-aktar release ġdid fost il-verżjonijiet maġġuri.
Biex tikseb il-hash SRI biex tippinja, ibni s-snippet: npm run build f'packages/snippet jipprintjah (is-sors huwa miftuħ fuq GitHub).
Bini tal-UI ta' divulgazzjoni tiegħek stess
Tista' turi l-UI ta' divulgazzjoni tiegħek stess minflok dik integrata. M'hemmx swiċċ wieħed li jitfi kollox: data-banner="false" u persistentChip: false jostakolaw biss il-banner ta' interazzjoni u l-chip tiegħu, filwaqt li n-notifiki tal-kontenut, il-badges [data-ai-content] għal kull element, u l-badge "magħmul mill-bnedmin" xorta jintwerew mill-manifest u l-markup tiegħek. UI kompletament personalizzata tfisser li ma tiddependix minn dawn u turi tiegħek stess.
Nota
Il-checker ta' AIDisclose jivverifika l-wiri billi jinduna bil-markup tas-snippet ta' referenza. Divulgazzjoni mibnija kompletament bl-idejn hija valida, iżda ma tiġix indunata awtomatikament, allura s-sit jibqa' fil-Livell 1 (Iddikjarat) minflok il-Livell 2 (Muri) sakemm il-markup personalizzat tiegħek ma jirriproduċix dak li jfittex il-checker. Jekk il-Livell 2 huwa importanti għalik, żomm il-wiri integrat u erġa' agħtih l-istil bis-CSS.
Aċċessibbiltà
L-UI murija tissodisfa l-WCAG 2.1 AA: kontorni :focus-visible viżibbli fuq il-kontrolli interattivi, roles u tikketti korretti, kuntrast li jżomm f'temi ċari u skuri, u animazzjoni marbuta wara prefers-reduced-motion. Is-snippet jinduna wkoll bil-barr tal-kunsens tal-cookies magħruf u jitqiegħed fuqhom biex id-divulgazzjonijiet qatt ma jkunu moħbija wara CMP. Fuq skrins dojoq ħafna l-banner ta' interazzjoni jinfetaħ bħala l-chip kompatt biex qatt ma jgħatti l-kontenut.