Dokumentazzjoni

Is-snippet ta' AIDisclose

Referenza għall-konfigurazzjoni u l-personalizzazzjoni

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-generation bi scope: site jew scope: 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-type li 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.texts ma' 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-label ma' 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 observe fid-default tiegħu (true) biex il-kontenut renderjat mill-klijent jinqabad.
  • Jekk tissuġġetta l-inizjalizzazzjoni għad-disponibbiltà tal-app, żid data-manual u 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: żid https://cdn.aidisclose.io, jew ospita aidisclose.js inti 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.css mid-direttorju tal-iskript, allura ippermetti wkoll https://cdn.aidisclose.io fi style-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, ippermetti https://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.js isegwi l-aħħar release 1.x. Rakkomandat għall-biċċa l-kbira tas-siti.
  • /v1.0.0/aidisclose.js huwa 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.js dejjem 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.