Documentación técnica
Manual de integración del widget de accesibilidad y referencia de la API de gestión de dominios.
Integración del widget
Carga automática (Plug & Play)
Implementación básica sin configuración adicional. El widget se carga inmediatamente con los valores por defecto.
<script defer src="https://api.addaw.org/addaw-wba11y.min.js"></script>
Inicialización vía API (Recomendado)
Permite definir retardos y configuraciones visuales personalizadas desde JavaScript.
<script defer src="https://api.addaw.org/addaw-wba11y.min.js"></script>
<script defer>
Addaw.init({
delay: 5000,
position: 'left',
dark_mode: '1',
lang: 'es',
logo_url: 'https://yoursite.com/logo.png',
logo_link: 'https://yoursite.com'
});
</script>
Parámetros de inicialización
| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
delay |
Number | 0 | Tiempo en ms para carga diferida. |
position |
String | 'right' | Ubicación del botón: left o right. |
dark_mode |
String / Bool | '0' | 1 para iniciar en modo oscuro (si no hay memoria). |
lang |
String | 'auto' | Código ISO de idioma (es, en, fr...). |
autoInit |
Boolean | true | Si es false, el widget espera a ser llamado manualmente. |
logo_url |
URL | ADDAW logo | Imagen personalizada para el footer del widget. |
logo_link |
URL | https://addaw.org/es | Destino del clic en el logo personalizado. |
Métodos de control (API pública)
Utilice estos comandos desde la consola o sus scripts para interactuar con el widget una vez cargado.
Addaw.initialized — Verifica si el widget está activo.
if (Addaw.initialized) {
console.log('Widget is active');
}
Addaw.destroy() — Elimina el widget completamente del sitio.
Addaw.destroy();
Addaw.init({...}) — Re-inicializa con nueva configuración.
Addaw.init({
position: 'left',
dark_mode: '1',
lang: 'en'
});
Jerarquía de configuración
El widget sigue una lógica estricta de prioridad para aplicar los ajustes:
Control manual avanzado
Para aplicaciones que requieren un inicio bajo demanda (por ejemplo, tras pulsar un botón específico):
<script>
window.AddawConfig = { autoInit: false };
</script>
<script defer src="https://api.addaw.org/addaw-wba11y.min.js"></script>
<script defer>
document.addEventListener('DOMContentLoaded', function() {
Addaw.init({
position: 'right',
lang: 'es'
});
});
</script>
API de gestión de dominios
API REST para que los empleados gestionen los dominios vinculados a su cuenta y personalicen la apariencia y el comportamiento del widget (paleta de colores y parámetros equivalentes a Addaw.init).
Autenticación
Todas las peticiones (excepto login) requieren un token Bearer en la cabecera Authorization.
POST https://panel.addaw.org/webService/ApiEmpleadoLogin
$ch = curl_init('https://panel.addaw.org/webService/ApiEmpleadoLogin');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'correo' => 'tu_correo@ejemplo.com',
'pass' => 'tu_password',
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
$token = $response['access_token'];
Dar de alta un dominio
Registra un nuevo dominio vinculado a tu cuenta. La operación es idempotente: si el dominio ya existe, no se duplica.
POST https://panel.addaw.org/webService/ApiEmpleadoDominioAlta
$ch = curl_init('https://panel.addaw.org/webService/ApiEmpleadoDominioAlta');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $token,
'Content-Type: application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['dominio' => 'www.example.com']));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Dar de baja un dominio
Desactiva un dominio. No se elimina, se marca como inactivo.
POST https://panel.addaw.org/webService/ApiEmpleadoDominioBaja
$ch = curl_init('https://panel.addaw.org/webService/ApiEmpleadoDominioBaja');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $token,
'Content-Type: application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['dominio' => 'www.example.com']));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Obtener mis dominios
Devuelve la lista de dominios activos vinculados a tu cuenta.
GET https://panel.addaw.org/webService/ApiEmpleadoMisDominios
$ch = curl_init('https://panel.addaw.org/webService/ApiEmpleadoMisDominios');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $token,
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Listar colores disponibles
Devuelve los nombres e ids de las paletas de colores disponibles para personalizar el widget.
GET https://panel.addaw.org/webService/ApiEmpleadoColoresDisponibles
$ch = curl_init('https://panel.addaw.org/webService/ApiEmpleadoColoresDisponibles');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $token,
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Personalizar un dominio
Guarda la configuración del widget para un dominio: paleta de colores y, de forma opcional, los mismos parámetros que admite Addaw.init (idioma, modo oscuro, posición, inicio automático, logos, retardo y foco en modales). La primera vez debe enviarse el id de paleta `color`; en peticiones posteriores puede omitirse y se conservan los colores ya guardados, o puede actualizarse solo parte de los campos. Para anular un valor almacenado y volver al comportamiento por defecto del widget, envíe la clave con `null`.
Parámetros del cuerpo JSON
Además de `dominio`, puede incluir los siguientes campos. Los nombres coinciden con la API del widget (`autoInit` y `focusOnContent`; también se aceptan `auto_init` y `focus_on_content`).
| Parámetro | Tipo | Descripción |
|---|---|---|
color |
integer |
Id. de paleta en el listado de colores disponibles. Obligatorio la primera vez que se configura el dominio; si se omite en actualizaciones posteriores, se mantienen los colores ya almacenados. |
lang |
string | null |
Código ISO 639-1 de dos letras (p. ej. `es`) o `null` para el valor por defecto del widget. |
dark_mode |
boolean | null |
`true` / `false`, `1` / `0` o `null` (modo oscuro inicial; respeta preferencias ya guardadas en el navegador). |
position |
string | null |
`left`, `right` o `null`. |
autoInit / auto_init |
boolean | null |
`true` / `false`, `1` / `0` o `null` (inicio automático al cargar el script). |
logo_url |
string | null |
URL del logo en el pie (http, https, ruta absoluta o relativa `./`) o `null`. |
logo_link |
string | null |
URL de destino al pulsar el logo o `null`. |
delay |
integer | null |
Entero en milisegundos entre 0 y 86400000 para retrasar el inicio, o `null`. |
focusOnContent / focus_on_content |
boolean | null |
`true` / `false`, `1` / `0` o `null` (foco en el contenido de modales internos). |
Al servir `addaw-wba11y.min.js` desde el CDN, el dominio se detecta por la cabecera Referer. Si hay opciones guardadas para ese dominio, se antepone `window.AddawConfig = { ... };` al script, de modo que se apliquen antes del arranque automático (el usuario puede seguir teniendo prioridad vía almacenamiento local, según la jerarquía indicada en la sección del widget).
POST https://panel.addaw.org/webService/ApiEmpleadoPersonalizarDominio
$ch = curl_init('https://panel.addaw.org/webService/ApiEmpleadoPersonalizarDominio');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $token,
'Content-Type: application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'dominio' => 'example.com',
'color' => 2,
'lang' => 'es',
'position' => 'left',
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);