Téigh díreach chuig an bpríomhábhar
Lógó ABAIR

Léitheoir Gréasáin

Déanann an Léitheoir Gréasáin an téacs ar aon leathanach gréasáin a léamh os ard le guthanna nádúrtha Gaeilge. Déantar gach líne agus gach focal a aibhsiú de réir mar a léitear iad, sa dóigh is gur féidir leat an téacs a leanúint. Rinneadh an áis seo a fhorbairt dóibh siúd ar fearr leo an éisteacht ná an léitheoireacht: saor in aisce, oscailte don phobal i gcoitinne, agus forbartha ag togra neamhbhrabúis.

Faigh spléachadh ar an dóigh a oibríonn sé

Cuir an Léitheoir Gréasáin le do bhrabhsálaí

Breiseán brabhsálaí do Chrome, Edge, Brave, Opera agus Firefox. Tá sé réidh le dhul chomh luath is atá sé suiteáile agat: barra uirlisí beag ar foluain ar féidir leat a tharraingt aon áit ar an leathanach. Níl le déanamh agat ach an cnaipe seanma a bhrú agus éisteacht. Níl gá le cuntas a chrúthú agus ní dhéantar rianú ar do chuid úsáide.

An dóigh le é a úsáid

Uair amháin atá an breiseán suiteáilte agat, beidh an barra uirlisí ar foluain ar gach leathanach ar a mbeidh tú. Seo mar a oibríonn sé.

1

Léigh an leathanach iomlán

Brúigh ar Seinn ar an bharra uirlisí agus déanfaidh an Léitheoir Gréasáin an leathanach iomlán, ón tús, a léamh, ag déanamh aibhsithe ar gach abairt agus gach focal de réir mar a léitear iad.

Tá an Ghaeilge ar cheann de na teangacha is sine san Eoraip.Labhraítear go laethúil í sa Ghaeltacht gach lá.Tá pobal úr cainteoirí ag fás ar líne.

2

Léigh an mhéid atá roghnaithe agat

Déan abairt faoi leith a roghnú trí bhrú air agus an luch a tharraingt ar a mhullach. Beidh cnaipe Léigh le feiceáil ansin os a chionn, agus níl le déanamh ach sin a bhrú chun é a léamh.

Tá an tionscadal ABAIR lonnaithe i gColáiste na Tríonóide. Forbraíonn an fhoireann guthanna sintéiseacha don Ghaeilge. Tá siad ar fáil saor in aisce.

Rialaithe an bharra uirlisí

Tá roinnt cnaipí éagsúla ar an bharra uirlisí. Seo an fheidhm atá ag gach ceann acu.

Tarraing an rialtánFaigh greim ar an rialtán poncaithe leis an bharra uirilisí a tharraingt go háit ar bith ar mian leat.
Seinn / Cuir ar sosTosaigh ag léamh an leathanaigh os ard. Déan é a bhrú arís chun sos a chur leis an léamh, agus arís eile le leanúint ar aghaidh arís.
StopStop ag léamh go hiomlán agus glan aon rud atá aibhsithe ar an leathanach.
Gabh siarGabh siar go tús an ailt agus éist arís leis.
Gabh ar aghaidhGabh ar aghaidh go dtí'n chéad alt eile agus lean ort ag léamh ó sin ar aghaidh.
FuaimOpen a volume slider, like on a video player, to make the voice louder or quieter.
SocruitheOpen the settings menu, where speed, dialect, voice and the reading toggles live.
CuidiúOscail an treoirleabhar ionsuite ina bhfuil treoracha a théann céim ar chéim
ÍoslaghdaighDéan cnaipe beag de bharra uirlíse an Léitheora Gréasáin le é a choinneáil amuigh as do bhealach. Cliceáil ar an chnaipe le é a dhéanamh mór arís.
LuasSa roghclár socruithe, déan an barra sleamhnáin a tharraignt le luas an ghutha a mhoilliú nó a luathú, ó 50% go 150%.
Canúint & guthFosta sa roghchlár socruithe: bain triail as na canúintí éagsúla agus roghnaigh an guth is ansa leat.
Ceisteanna coitianta

Níl an painéal rialaithe le feiceáil agam

Cinntigh go bhfuil an breiseán curtha ar siúl agat. Cliceáil ar dheilbhín an Léitheora Gréasáin i mbarra uirlíse do bhrabhsálaí. Bíonn an cnaipe cumhachta ar bharr an roghchláir ar lasadh i ndath glas nuair atá an breiseán ar siúl.

Níl aon fhuaim le cloisteáil agam

Cinntigh go bhfuil fuaim do ríomhaire casta ar siúl go hard agat. Cinntigh fosta go bhfuil tú ceangailte leis an idirlíon - teastaíonn nasc idirlíne ón léitheoir chun go n-oibróidh sé

Tá fuaim aisteach ag an ghuth

Bain triail as an chanúint nó an guth a athrú (leis an deilbhín rotha ar an bharra uirlisí). Tá fuaimeanna éagsúla ag na canúintí go léir!

Tá an barra uirlise sa mhullach ar ábhar an leathanaigh

Is féidir leat an barra uirlisí a bhogadh trí ghreim a fháil ar an rialtán poncaithe ar thaobh na láimhe clé. Is féidir fosta cliceáil ar an chnaipe íoslaghdaithe chun é a dhéanamh níos lú, agus ar an deilbhín callaire chun é a dhéanamh mór arís.

Cén dóigh ar féidir liom an breiseán a chasadh as?

Cliceáil ar dheilbhín an Léitheora Gréasáin i mbarra uirlíse do bhrabhsálaí, agus ansin cliceáil ar an chnaipe cumachta ar bharr an roghchláir. Múchfar an solas glas agus imeoidh an barra uirlíse as radharc go gcuirfear ar siúl arís é.

Cuardach focal ar Teanglann

Fad is atá an Léitheoir Gréasáin ar obair is féidir cuardach san fhoclóir údarasach Gaeilge, Teanglann, a dhéanamh trí chliceáil ar aon fhocal faoi dhó. Beidh míniú an fhocail agus a ghramadach le feiceáil gan leathanach úr a fhoscailt nó d'áit sa téacs a chailleadh.

Dictionary content is from Teanglann.ie, developed and operated by Foras na Gaeilge. Web Reader opens their entries directly and stores no dictionary content of its own.

Chuir an ceoltóir draíocht ar an slua le gach nóta a sheinn sé.

Iontráil foclóra don fhocal 'draíocht' ar Teanglann.ie

Ag suiteáil an Léitheora Gréasáin do shuíomh gréasáin

Is féidir an Léitheoir Gréasáin a shuiteáil in aon suíomh gréasáin gan úsáid a bhaint ach as clib scripte amháin. Freastalaítear ar an script seo ónár líonra soláthair inneachair ag webreader.abair.ie, ag cur na gnéithe léitheoireachta agus rialaithe céanna ar fáil do gach úsáideoir. Is féidir an script a íoslódáil ón líonra soláthair inneachair agus a ghreamú díreach i d'fheidhmchlár. Soláthraítear gan chostas é.

index.html
<script src="https://webreader.abair.ie/script.js" async></script>

Every release keeps its own permanent address, so a version you pin stays available. Use /script.js for the newest build, /v1/script.js to follow 1.x releases, or /v1.3.0/script.js to stay on one exact version.

What the reader reads

The reader picks one container on the page and reads only what is inside it. Getting this right is what makes a page sound correct.

index.html
<body>
  <header>…</header>

  <main>
    <h1>Alt an Bhile</h1>
    <p>Is baile fearainn é seo i gContae Dhún na nGall.</p>
  </main>

  <footer>…</footer>
</body>
Put your content in <main>
Without a <main> or <article> element the reader falls back to the whole <body>, so visitors hear the navigation menu, the cookie banner and the footer before reaching the article.
Tags that are read
Only p, h1–h6, li, td, th, blockquote, button, a and figcaption are read. Text in a <div> or <span> is skipped. Wrap it in a <p> instead.
Order follows your HTML
Reading order is source order. Re-ordering visually with CSS does not change what is read first.
Avoid reading things twice
A <button> inside a <p>, or a nested <li>, is read twice. Move the button out and keep list items as siblings.
Cumraíocht

Optional. Define window.WebReaderConfig before the script tag to override the defaults.

config
<script>
  window.WebReaderConfig = {
    locale: 'ga',
    panelPosition: 'bottom-right',
    collapseByDefault: true,
    speed: 1.0,
    dialect: 'ga_CO',
    voice: 'ga_CO_snc_piper',
    wordLookup: false,
    announceMedia: false,
    disableTeanglann: true
  };
</script>

The reading defaults below (speed, dialect, voice, wordLookup, announceMedia) seed a visitor's settings on their first visit only. After they change a setting in the panel, their own choice is kept. disableTeanglann is a hard lock applied on every load.

contentSelector
A CSS selector for the element to read, e.g. '#article'. Use this when you cannot add a <main> element, or the reader picks the wrong part of the page.
ignoreSelector
A CSS selector for elements never to read, e.g. '.ad, .related'. Use it to keep ads, share bars and related-link blocks out of the reading.
locale
Interface language. 'ga' (Irish) or 'en' (English). Defaults to 'ga'.
panelPosition
Which corner the panel starts in: 'bottom-right' (default), 'bottom-left', 'top-right', 'top-left', or 'remember' to keep where the visitor last dragged it. Pixel coordinates are not supported.
collapseByDefault
true (default) starts collapsed; false starts expanded. A visitor's own toggle is remembered in localStorage.
luas
Default playback speed, from 0.5 (slowest) to 1.5 (fastest); 1.0 is normal. First-visit default.
canúint
Default dialect: 'ga_CO' (Connemara), 'ga_UL' (Donegal), 'ga_MU' (Kerry), or 'ga_MU_ar' (Waterford). Picks that dialect's default voice unless voice is also set.
guth
Default voice id, e.g. 'ga_CO_snc_piper' (Sibéal) or 'ga_UL_anb_piper' (Áine). Sets the matching dialect automatically.
wordLookup
Whether double-click Teanglann lookup starts on. true or false (default). Needs disableTeanglann: false. First-visit default; visitors can still toggle it.
announceMedia
Whether spoken "Link:" and "Image:" announcements start on. true or false (default).
disableTeanglann
Hard lock, on by default. true (default) removes Teanglann lookup entirely: no double-click, no Alt+L, and the toggle is hidden from the panel. Set false to allow it. Applied on every load, overriding wordLookup.
React / Next.js integration

The script must run in the browser. In React or Next.js, inject it from a client-side useEffect.

1. Add WebReader.tsx

WebReader.tsx
"use client";

import { useEffect } from "react";

export default function WebReader() {
  useEffect(() => {
    if (document.getElementById("webreader-embed-script")) return;

    window.WebReaderConfig = {
      locale: "ga",
      panelPosition: "bottom-right",
    };

    const script = document.createElement("script");
    script.id = "webreader-embed-script";
    script.src = "https://webreader.abair.ie/script.js";
    script.async = true;
    document.body.appendChild(script);

    return () => {
      window.WebReader?.destroy();
      document.getElementById("webreader-embed-script")?.remove();
    };
  }, []);

  return null;
}

2. Mount it in the root layout

app/layout.tsx
import WebReader from "./WebReader";

export default function RootLayout({ children }) {
  return (
    <html>
      <body>
        {children}
        <WebReader />
      </body>
    </html>
  );
}
Controlling the reader with JavaScript

The script adds one object to the page, window.WebReader. Use it to start and stop reading from your own buttons, to switch the reader off on some pages, to change settings while the page is open, or to run your own code when reading starts, stops or ends. Every method returns WebReader, so you can chain calls.

1. Wait for the script to load

The script tag uses async, so your own code can run before window.WebReader exists. This helper runs your code at once if the reader is there, and otherwise waits for the page's load event, which the browser holds back until the script has run. It works whether your code comes before or after the script tag. If you add the script tag from your own code, as in the React example, use that tag's load event instead. You can call any method as soon as your code runs: play() and setEnabled() wait until the reader has finished starting up.

script.js
function withWebReader(fn) {
  if (window.WebReader) return fn(window.WebReader);
  window.addEventListener("load", () => {
    if (window.WebReader) fn(window.WebReader);
  });
}

2. Start reading from your own button

index.html
<button id="listen">Éist leis an leathanach seo</button>

<script>
  withWebReader((reader) => {
    document.getElementById("listen").addEventListener("click", () => reader.play());
  });
</script>

3. Switch the reader off on some pages

script.js
withWebReader((reader) => {
  const isIrish = document.documentElement.lang.startsWith("ga");
  reader.setEnabled(isIrish);
});

4. Run your own code when something happens

script.js
withWebReader((reader) => {
  reader.on("complete", () => {
    console.log("Finished reading the page");
  });
  reader.on("error", (detail) => {
    console.warn("Web Reader:", detail.message);
  });
});

Methods

play()
Starts reading, or continues after a pause. Reads the text the visitor has selected if there is any, otherwise the page. This is the same as the play button on the panel. It does nothing if the reader is already reading.
pause()
Pauses reading. The next play() continues from the same place.
stop()
Stops reading and removes the highlight. The next play() starts again from the beginning.
setEnabled(true | false)
setEnabled(false) stops reading and hides the panel. setEnabled(true) shows it again. The script stays loaded, so switching back is instant. This lasts for the current page only: after the next page load the reader is on again, so call it on each page where you want the reader off.
configure(options)
Changes settings while the page is open. It takes the same options as window.WebReaderConfig, for example configure({ speed: 1.2, locale: 'en' }). The visitor's browser remembers the new settings, the same as if the visitor had changed them in the panel. These options only work while the script loads, so set them in window.WebReaderConfig instead: contentSelector, ignoreSelector, collapseByDefault, panelPosition, panelOffset and panelZIndex.
on(event, handler)
Runs handler each time the event happens. The handler receives a detail object. The events are listed below.
off(event, handler)
Removes a handler that you added with on(). Leave out handler to remove all handlers for that event.
destroy()
Removes the reader from the page completely: it stops reading, removes the panel and removes all of its listeners. After this, all other methods do nothing. If you only want to hide the reader for a while, use setEnabled(false).
version
The version of the script that loaded, for example "1.2.3". This is a property, not a method.

Events

"play"
The visitor pressed the play button on the panel, or your code called play(). The panel button switches between play and pause, so this event also happens when the visitor pauses from the panel.
"stop"
The visitor pressed the stop button, or your code called stop().
"complete"
The reader has read to the end of the page.
"error"
The panel showed an error to the visitor, for example because the speech service could not be reached. detail.message holds the text of the error.

If the visitor has the Web Reader browser extension, the script steps aside for the extension. On that page, window.WebReader methods do nothing.

Adding it to a website: FAQ

The panel doesn't appear after installation

Confirm the tag is inside <body> rather than <head>, the file is saved, and do a hard refresh (Ctrl/Cmd + Shift + R).

The panel starts collapsed

That's the default. Expanding the panel persists the choice to localStorage for the visitor's next visit.

Are non-Irish voices available?

Not yet. Every synthesised voice is Irish today, and the interface alone can be switched to English with locale: 'en'. Bilingual voices are in active development. Code-switching comes first, so an Irish voice handles English words and phrases inside Irish text, with Hiberno-English versions of our voices to follow.

Is there a usage fee?

No. The service is provided free of charge by the ABAIR research project. You do not have to add anything: the collapsed panel button already carries the ABAIR mark, and that is attribution enough. If you would also like to credit us in your own words, a line in your footer or accessibility statement such as "Irish text-to-speech by ABAIR, Trinity College Dublin", linked to abair.ie, is very welcome.

Where do I report issues?

Contact the ABAIR team through the form at abair.ie.

Accessibility and privacy

Web Reader is designed to meet WCAG 2.1 AA: keyboard accessible, ARIA-labelled, with colour-blind-friendly highlight presets and an Irish interface alongside English. No account, cookie, or tracking of any kind. Text you have read aloud, and speech you dictate, is sent to ABAIR only to generate audio or a transcript. The optional dictionary lookup sends the chosen word to Teanglann.ie.

Designed to meet WCAG 2.1 AAScreen-reader compatibleKeyboard navigableIrish & English interfaceNo tracking
DCHG
S20
Crannchur Náisiúnta
COGG
Trinity College Dublin