Closed mariantanase closed 1 year ago
Probabilmente, è a causa dell'apostrofo nel titolo del servizio: "Carta d'identità...". Vedi: #343
Probabilmente, è a causa dell'apostrofo nel titolo del servizio: "Carta d'identità...". Vedi: #343
La tua pull risolverebbe il problema ? Grazie
Con la pull-request il json risulta valido, però ancora non passa la validazione.
È che il Servizio per passare deve essere compilato per filo e per segno, in pratica basta saltare qualcosa, e ciao.
Se poi manca il Luogo, si perde già la metà dei campi obbligatori.
Aggiungiamoci la grana di addressLocality
, e il gioco è fatto...
Il fatto è che tutti i campi obbligatori sono stati inseriti, non capisco il perché...
Ma nell'html della pagina il tag ld+json
è completo?
Sembra di si
{
"@context": "http://schema.org",
"@type": "GovernmentService",
"name": "Carta d'identit\u00e0 elettronica (CIE)",
"serviceType": "Anagrafe e stato civile",
"serviceOperator": {
"@type": "GovernmentOrganization",
"name": "" },
"areaServed": {
"@type": "AdministrativeArea",
"name": "A tutto il territorio del comune"
},
"audience": {
"@type": "Audience",
"audienceType": "La CIE può essere richiesta da tutti coloro (cittadini italiani, comunitari e non) che risultano iscritti nell'Anagrafe della Popolazione Residente del Comune o che, comunque, abbiano, in tale Comune, la loro dimora.Per i cittadini residenti in altro Comune italiano il rilascio della CIE può essere richiesto solo per sopperire a necessità derivanti da gravi e comprovati motivi che non consentono di recarsi presso il proprio Comune di residenza (Circolare Ministero dell'Interno del 05/11/1999) e solo dopo aver ricevuto, da tale Comune, il relativo nulla osta.Per richiedere il rilascio della carta d'identità a nome di un minore, questi deve essere accompagnato allo sportello comunale da chi ha la responsabilità genitoriale (genitori o tutore), muniti di valido documento di riconoscimento e, nel caso del tutore, anche della sentenza di nomina."
},
"availableChannel": {
"@type": "ServiceChannel",
"name": "Dove rivolgersi"
,"serviceLocation": {
"name": "Ufficio Anagrafe",
"address": {
"streetAddress": "Via da qui 21",
"postalCode": "01234" }
}
}
}
nella creazione di un servizio che punta all'esterno per accesso tramite spid, il valutatore rimanda un JSON non valido. Non ci sono apostrofi ecc...ma rimane l'errore. Questo è bloccante ai fini dell'asseverazione oppure solo i metatag dei campi obbligatori? Avete suggerimenti su quale e come risolvere in ogni caso questo problema?
@fabricius4
Vero: se c'è serviceUrl
ma manca serviceLocation
, il json non è valido. C'è questa virgola di troppo.
La PR di cui sopra dovrebbe risolvere anche quello, comunque.
La morale forse è che anche il JSON, come l'XML, non è quasi mai una buona idea formarlo con i template di PHP. La via più sicura sarebbe probabilmente fare una bella _dci_jsonservizio(), in cui tutto viene passato attraverso json_encode()
in un colpo solo.
@mariantanase
"serviceOperator": {
"@type": "GovernmentOrganization",
"name": ""
Il nome del fornitore è in bianco. A quanto pare ciò per il validatore è un peccato mortale, esce subito inorridito e si rifiuta di considerare tutto il resto...
@enrimk @mariantanase per eludere il controllo di serviceOperator.name io ho compilato il campo (non obbligatorio) Codice dell'Ente erogatore (IPA) nei vari servizi. ma errori su audience.name e areaServed non sono riuscito a toglierli, idee?
il json è dato come corretto.
versione 1.7.3 del tema wordpress versione 2.7.2 del validatore
Sì, infatti è quello, codice IPA, il campo che viene usato per il fornitore. Campo che fra parentesi si chiama in modo un po' fuorviante, è più un "nome" che un "codice". Sul fatto che non sia obbligatorio, ma necessario alla validazione... avevo anche pensato di metterci un default sensato, ma poi l'ho tolto, perché mi è venuto in mente che forse, da qualche parte nel vasto mondo, dopotutto possano esistere anche servizi senza fornitore identificato, e da non validare, e che questo sia effettivamente stato considerato per questa scelta. Magari però una nota sul campo IPA, a backoffice, circa il suo ruolo nell'asseverazione, sarebbe utile.
I nomi sono audience.audienceType per "A chi è rivolto" (="destinatari
"), e areaServed.name per "copertura_geografica
".
Questo, anche secondo la documentazione.
Il validatore cerca proprietà diverse?
Il validatore cerca proprietà diverse?
In effetti... Non conosco jsonschema e metatagAudit.ts non contiene tutta la procedura, ma questa cosa qui insospettisce parecchio.
si perchè anche se passa come JSON valido rimane questo audience.name come errore. Sto provando una cosa e nel caso aggiorno
@enrimk in effetti.. qui dà come required: ["name"] ma nel json di single-servizio.php il riferimento a name non c'è..
"audience": { "audienceType": "<?php echo convertToPlain($destinatari); ?>",
ovviamente mettendo un attributo name "fake" tipo
"audience": { "audienceType": "<?php echo convertToPlain($destinatari); ?>", "name":"all" },
il validatore passa con il 100%....
Bisogna riconoscere che almeno per il validatore, il team dimostra una certa prontezza. È arrivata una PR.
Sì, infatti è quello, codice IPA, il campo che viene usato per il fornitore. Campo che fra parentesi si chiama in modo un po' fuorviante, è più un "nome" che un "codice". Sul fatto che non sia obbligatorio, ma necessario alla validazione... avevo anche pensato di metterci un default sensato, ma poi l'ho tolto, perché mi è venuto in mente che forse, da qualche parte nel vasto mondo, dopotutto possano esistere anche servizi senza fornitore identificato, e da non validare, e che questo sia effettivamente stato considerato per questa scelta. Magari però una nota sul campo IPA, a backoffice, circa il suo ruolo nell'asseverazione, sarebbe utile.
I nomi sono audience.audienceType per "A chi è rivolto" (="
destinatari
"), e areaServed.name per "copertura_geografica
". Questo, anche secondo la documentazione. Il validatore cerca proprietà diverse?
invece questo: availableChannel.serviceLocation.address.addressLocality a cosa corrisponde?
invece questo: availableChannel.serviceLocation.address.addressLocality a cosa corrisponde?
dovrebbe corrispondere al campo del back office "Copertura geografica"
invece questo: availableChannel.serviceLocation.address.addressLocality a cosa corrisponde?
A... (rullo di tamburi)... a quartiere! ...Del Luogo, della Sede principale, del primo degli Uffici (canale fisico), del Servizio. [^1] Eh già... 😶
[^1]: A questo punto mi sembra sempre di sentire cantare Branduardi in sottofondo...
al campo del back office "Copertura geografica"
Altri problemi, qua. Ma almeno non coinvolgono la validazione, solo la "semantica".
Infatti, nello schema di riferimento del json, il campo areaServed
è un type AdministrativeArea.
Che, per schema.org, sembra si riferisca a qualcosa di più ufficiale e giurisdizionalmente definito di "le zone coperte da ZTL", come nell'esempio a backoffice.
Inoltre, areaServed.name
viene da Copertura geografica, che in anagrafica è un campo multiriga, e con un editor richtext. Ciò non corrisponde molto alla proprietà AdministrativeArea::name - che è vero che tecnicamente è indicata solo come Text, apparentemente senza espliciti vincoli di lunghezza o formato, ma non so se è previsto che contenga addirittura dei capoversi, o della formattazione. Sarebbe allora più appropriato AdministrativeArea::description per un oggetto del genere. [^1]
[^1]: E vedo che può infatti essere un TextObject, a differenza di name
.
@enrimk in effetti.. qui dà come required: ["name"] ma nel json di single-servizio.php il riferimento a name non c'è..
"audience": { "audienceType": "<?php echo convertToPlain($destinatari); ?>",
ovviamente mettendo un attributo name "fake" tipo
"audience": { "audienceType": "<?php echo convertToPlain($destinatari); ?>", "name":"all" },
il validatore passa con il 100%....
ciao ho fatto la modifica che proponi ma il validatore mi da sempre zero con la seguente dicitura:
Risultato In almeno una delle schede servizio analizzate meno del 50% dei metatag richiesti sono presenti e corretti. | | Pagine nelle quali meno del 50% dei metatag richiesti sono presenti e corretti: | JSON valido | Metatag non presenti o errati
ovviamente mettendo un attributo name "fake" tipo
"audience": { "audienceType": "...", "name":"all" },
ciao ho fatto la modifica che proponi ma il validatore mi da sempre zero con la seguente dicitura:
NB @tomasdimaio: quello di @danimog non era una proposta, era un test - e solo un test di uno specifico bug del validatore.
Il tuo problema può essere diverso: anche se quel particolare tag ora si valida, può benissimo essere che in uno dei servizi manchino dati, abbastanza per non soddisfare il validatore (che è piuttosto severo).
Tra parentesi, nel frattempo nell'ultima versione del validatore quel bug di audience è stato corretto.
Salve scusatemi ma non riesco proprio ad uscire da questo problema, nonostante compili tutti campi , così come detto in precedenza, il validatore mi da ancora il js non valido, ma soprattutto non mi segnala quali sono i metatag non presenti
ciao @tomasdimaio i dati nella pagina del servizio li hai compilati tutti? prova in particolare a compilare il campo "copertura geografica". a me aveva bloccato quello la validità del json. Guardando difatti il tuo codice html si vede che nel codice dello script application/ld+json il valore seguente è vuoto: "areaServed": { "name": "" },
@tomasdimaio ...E soprattutto: hai applicato la #343 ? Negli indirizzi dei tuoi luoghi c'è un a-capo, rende invalido il JSON.
Salve scusatemi ma non riesco proprio ad uscire da questo problema, nonostante compili tutti campi , così come detto in precedenza, il validatore mi da ancora il js non valido, ma soprattutto non mi segnala quali sono i metatag non presenti
prova a compilare il campo Uffici (canale fisico), dovrebbe essere questo che vincola la validità
@zetareticoli Perché l'issue non è più un bug?
Prerequisiti
Descrivi il problema
Il codice json contenuto nella pagina
single-servizio.php
, risulta non valido e di conseguenza anche il tool di validazione lo segnala. Come va modificato per superare la validazione in oggetto ?Grazie
Includi link o screenshot
Su quale sisitema operativo stai riscontrando il problema?
Windows
Su quale browser stai riscontrando il problema?
Qualsiasi
Che versione del tema stai utilizzando?
1.7.3