Close Menu
    Facebook X (Twitter) Instagram
    • Home
    • Contact Us
    • About Us
    • Privacy Policy
    • Terms Of Service
    • Advertisement
    Saturday, July 18
    Facebook X (Twitter) Instagram Pinterest Vimeo
    ABS Africa TV
    • Breaking News
    • Trending
    • Africa News
    • World News
    • Features
    • Technology
    • More
      • Sports
      • Politics
      • Culture
      • Lifestyle
      • Travel
      • Business
      • Environment
      • Legal
      • Health
      • Cameroon
      • Ambazonia
      • AfroSingles
      • Environ/Climate
      • Editorial
      • The Leak Magazine
    • Donate
    Subscription
    ABS Africa TV
    Home»Travel»20 pupils killed in bus crash while returning from school tour in eastern Uganda
    Travel

    20 pupils killed in bus crash while returning from school tour in eastern Uganda

    Martin AkumaBy Martin AkumaJuly 18, 2026No Comments9 Mins Read
    Facebook Twitter Pinterest LinkedIn Tumblr Email
    Share
    Facebook Twitter LinkedIn Pinterest Email
    Post Views: 7

    20 pupils killed in bus crash while returning from school tour in eastern Uganda

    Wreckage from the Kapchorwa crash that claimed the lives of 20 pupils and an adult. (Photo: Handout)

    Listen to article

    3 min listen
    Audio reading is not supported on this browser.
    Ready

    Thanks for listening. Continue with a related story, or tap the speaker icon on the next page to listen.

    Death toll rises to 24 in Ugandan school bus crash, 23 admitted

    Mary Wambui

     · 

    7 hours agoRead nextOpens a fresh page.

    The pupils of King David Junior School, Ndejje, were returning from a study tour on Thursday night when the bus they were travelling in reportedly developed a mechanical fault at around 8:00 pm.

    The Uganda Police Force has confirmed the death of 20 pupils and an adult following a road crash yesterday evening at Chekwatit Village, Kimawa Parish, Kawowo Sub-county, Kapchorwa District.
    The pupils of King David Junior School, Ndejje, were returning from a study tour on Thursday night when the bus they were travelling in reportedly developed a mechanical fault at around 8:00 pm. The driver is said to have lost control before the vehicle crashed.
    “We wish to confirm that a total of 21 people, comprising 20 pupils and one adult, have so far been confirmed dead. The crash involved an Isuzu bus, registration number UA 108BQ, belonging to King David Junior School, Ndejje, Makindye Division, Kampala. The driver has not yet been identified,” Michael Kananura of the Directorate of Traffic and Road Safety said.

    More To Read

    • Death toll rises to 24 in Ugandan school bus crash, 23 admitted
    • Uganda suspends school trips after Kapchorwa bus crash kills 20 pupils
    • School bus carrying 56 learners involved in accident along Kabarnet–Marigat Road
    • Six killed as matatu, trailer collide head-on along Nakuru-Eldoret highway
    • Ambasa Coach bus catches fire after collision in Mwingi, Kitui County
    • Nyandarua DCI boss John Rioba killed in road accident involving nine vehicles

    The police added that several survivors, whose identities are yet to be established, were rushed to Kaserem Health Centre IV, Kapchorwa General Hospital, and Mbale Regional Referral Hospital for treatment.
    “Preliminary investigations indicate that the school bus had taken pupils on an educational tour to Sipi Falls in Kapchorwa District. While returning from the tour, the driver reportedly lost control of the vehicle, which veered off the road, struck a large stone along the roadside, and overturned. The crash claimed the lives of one adult male and 20 pupils, while three adult males and several juveniles sustained injuries,” he added.
    The bodies of the deceased have been taken to Kapchorwa Mortuary pending identification and postmortem examinations.

    Latest Stories

    • Legacy Football Academy makes history with Gothia Cup U14 title
    • Police arrest fifth suspect in Mombasa Marikiti mob killing
    • No new season without clear leadership framework, Premier League clubs warn FKF
    • Study says Egypt’s Aswan High Dam accelerated Nile Delta erosion, land subsidence

    Police said investigations into the exact cause of the crash are ongoing.
    “The Uganda Police Force extends its deepest condolences to the bereaved families, the management of King David Junior School, and all those affected by this tragic incident. We also wish the injured a quick and full recovery,” the UPF added.

    Other Topics To Read

    Top Stories Today

    • The untold struggles of families with sickle cell disease amid lifelong uncertainty
    • Police arrest fifth suspect in Mombasa Marikiti mob killing
    • No new season without clear leadership framework, Premier League clubs warn FKF
    • Study says Egypt’s Aswan High Dam accelerated Nile Delta erosion, land subsidence
    • Airstrike kills 25 Al-Shabaab in Hiiraan as four terrorists surrender to Somali forces
    • Emmanuel Wanyonyi misses 800m podium finish at London Diamond League

    `;
    }

    return “;
    }

    function commentActionsMarkup(comment, canComment) {
    const likeLabel = comment.liked_by_me ? ‘Liked’ : ‘Like’;
    const likeCount = Number(comment.like_count || 0) > 0
    ? “
    : ”;

    const likeButton = canComment && comment.status === ‘approved’
    ? “
    : “;

    const replyButton = canComment && comment.status === ‘approved’
    ? “
    : ”;

    return `

    `;
    }

    function commentMarkup(comment, canComment, isReply = false) {
    const pendingBadge = comment.status && comment.status !== ‘approved’
    ? “
    : ”;

    const edited = comment.is_edited
    ? “
    : ”;

    const repliesHtml = Array.isArray(comment.replies) && comment.replies.length
    ? `

    `
    : “;

    return `

    `;
    }

    function replyFormMarkup(commentId) {
    return `

    `;
    }

    function setNotice(widget, message, type = ‘info’) {
    const notice = widget.querySelector(‘[data-role=”notice”]’);
    if (!notice) return;

    if (!message) {
    notice.hidden = true;
    notice.textContent = ”;
    notice.classList.remove(‘is-error’);
    return;
    }

    notice.hidden = false;
    notice.textContent = message;
    notice.classList.toggle(‘is-error’, type === ‘error’);
    }

    function setCount(widget, total) {
    const count = widget.querySelector(‘[data-role=”count”]’);
    if (!count) return;

    const num = Number(total || 0);
    count.textContent = num === 1 ? ‘1 comment’ : `${num} comments`;
    }

    function openReplyBox(widget, commentId) {
    widget.querySelectorAll(‘[data-role=”reply-box”]’).forEach(box => {
    box.hidden = true;
    box.innerHTML = ”;
    });

    const targetItem = widget.querySelector(`.ev-comments__item[data-comment-id=”${commentId}”]`);
    if (!targetItem) return;

    const replyBox = targetItem.querySelector(‘[data-role=”reply-box”]’);
    if (!replyBox) return;

    replyBox.hidden = false;
    replyBox.innerHTML = replyFormMarkup(commentId);

    const textarea = replyBox.querySelector(‘textarea’);
    if (textarea) textarea.focus();
    }

    function closeReplyBox(container) {
    if (!container) return;
    container.hidden = true;
    container.innerHTML = ”;
    }

    async function initCommentsWidget(widget) {
    const state = {
    articleId: Number(widget.dataset.articleId),
    loadUrl: widget.dataset.loadUrl,
    storeUrl: widget.dataset.storeUrl,
    commentsBaseUrl: widget.dataset.commentsBaseUrl,
    canComment: widget.dataset.canComment === ‘1’,
    page: 1,
    perPage: 10,
    sort: ‘newest’,
    total: 0,
    hasMore: false,
    busy: false
    };

    const list = widget.querySelector(‘[data-role=”list”]’);
    const loading = widget.querySelector(‘[data-role=”loading”]’);
    const empty = widget.querySelector(‘[data-role=”empty”]’);
    const loadMoreBtn = widget.querySelector(‘[data-role=”load-more”]’);
    const sortSelect = widget.querySelector(‘[data-role=”sort”]’);
    const composerForm = widget.querySelector(‘[data-role=”composer-form”]’);

    async function loadComments(reset = true) {
    if (state.busy) return;

    state.busy = true;
    setNotice(widget, ”);
    loading.hidden = false;

    if (reset) {
    state.page = 1;
    list.innerHTML = ”;
    empty.hidden = true;
    }

    try {
    const url = new URL(state.loadUrl, window.location.origin);
    url.searchParams.set(‘page’, state.page);
    url.searchParams.set(‘per_page’, state.perPage);
    url.searchParams.set(‘sort’, state.sort);

    const response = await requestJson(url.toString(), {
    method: ‘GET’,
    headers: {
    ‘Accept’: ‘application/json’,
    ‘X-Requested-With’: ‘XMLHttpRequest’
    }
    });

    const items = Array.isArray(response.data) ? response.data : [];
    const meta = response.meta || {};

    state.total = Number(meta.total || 0);
    state.hasMore = !!meta.has_more;

    setCount(widget, state.total);

    if (reset) {
    list.innerHTML = ”;
    }

    if (!items.length && reset) {
    empty.hidden = false;
    } else {
    empty.hidden = true;
    list.insertAdjacentHTML(
    ‘beforeend’,
    items.map(item => commentMarkup(item, state.canComment, false)).join(”)
    );
    }

    loadMoreBtn.hidden = !state.hasMore;
    } catch (error) {
    if (!list.children.length) {
    empty.hidden = false;
    empty.textContent = ‘Unable to load comments right now.’;
    }
    setNotice(widget, error.message || ‘Unable to load comments.’, ‘error’);
    } finally {
    loading.hidden = true;
    state.busy = false;
    }
    }

    async function submitTopLevelComment(form) {
    const textarea = form.querySelector(‘textarea[name=”content”]’);
    const button = form.querySelector(‘[data-role=”submit-comment”]’);

    if (!textarea) return;

    const content = textarea.value.trim();
    if (!content) return;

    const originalText = button ? button.textContent : ”;

    try {
    if (button) {
    button.disabled = true;
    button.textContent = ‘Posting…’;
    }

    const response = await requestJson(state.storeUrl, {
    method: ‘POST’,
    headers: buildJsonHeaders(),
    body: JSON.stringify({
    article_id: state.articleId,
    content: content,
    source_url: window.location.href
    })
    });

    textarea.value = ”;

    if (response?.data) {
    list.insertAdjacentHTML(
    ‘afterbegin’,
    commentMarkup(response.data, state.canComment, false)
    );
    empty.hidden = true;

    if ((response.data.status || ”) === ‘approved’) {
    state.total += 1;
    setCount(widget, state.total);
    }
    }

    setNotice(widget, response.message || ‘Comment posted successfully.’);
    } catch (error) {
    setNotice(widget, error.message || ‘Unable to post comment.’, ‘error’);
    } finally {
    if (button) {
    button.disabled = false;
    button.textContent = originalText || ‘Post comment’;
    }
    }
    }

    async function submitReply(form) {
    const commentId = Number(form.dataset.commentId || 0);
    const textarea = form.querySelector(‘textarea[name=”content”]’);
    const button = form.querySelector(‘.ev-comments__reply-submit’);

    if (!commentId || !textarea) return;

    const content = textarea.value.trim();
    if (!content) return;

    const originalText = button ? button.textContent : ”;

    try {
    if (button) {
    button.disabled = true;
    button.textContent = ‘Posting…’;
    }

    const response = await requestJson(`${state.commentsBaseUrl}/${commentId}/reply`, {
    method: ‘POST’,
    headers: buildJsonHeaders(),
    body: JSON.stringify({
    article_id: state.articleId,
    content: content,
    source_url: window.location.href
    })
    });

    if (response?.data) {
    const parentItem = widget.querySelector(`.ev-comments__item[data-comment-id=”${commentId}”]`);
    if (parentItem) {
    const repliesWrap = parentItem.querySelector(‘.ev-comments__replies’);
    if (repliesWrap) {
    repliesWrap.insertAdjacentHTML(
    ‘beforeend’,
    commentMarkup(response.data, state.canComment, true)
    );
    }
    }
    }

    closeReplyBox(form.closest(‘[data-role=”reply-box”]’));
    setNotice(widget, response.message || ‘Reply posted successfully.’);
    } catch (error) {
    setNotice(widget, error.message || ‘Unable to post reply.’, ‘error’);
    } finally {
    if (button) {
    button.disabled = false;
    button.textContent = originalText || ‘Post reply’;
    }
    }
    }

    async function toggleLike(button) {
    const commentId = Number(button.dataset.commentId || 0);
    if (!commentId) return;

    const originalHtml = button.innerHTML;

    try {
    button.disabled = true;
    button.innerHTML = ‘Working…’;

    const response = await requestJson(`${state.commentsBaseUrl}/${commentId}/like`, {
    method: ‘POST’,
    headers: buildJsonHeaders(),
    body: JSON.stringify({})
    });

    const liked = !!response?.data?.liked;
    const likeCount = Number(response?.data?.like_count || 0);

    button.classList.toggle(‘is-liked’, liked);
    button.innerHTML = `${liked ? ‘Liked’ : ‘Like’} ${likeCount > 0 ? “ : ”}`;
    } catch (error) {
    button.innerHTML = originalHtml;
    setNotice(widget, error.message || ‘Unable to update like.’, ‘error’);
    } finally {
    button.disabled = false;
    }
    }

    if (composerForm) {
    composerForm.addEventListener(‘submit’, function (e) {
    e.preventDefault();
    submitTopLevelComment(composerForm);
    });
    }

    if (sortSelect) {
    sortSelect.addEventListener(‘change’, function () {
    state.sort = this.value || ‘newest’;
    loadComments(true);
    });
    }

    if (loadMoreBtn) {
    loadMoreBtn.addEventListener(‘click’, function () {
    if (state.busy || !state.hasMore) return;
    state.page += 1;
    loadComments(false);
    });
    }

    widget.addEventListener(‘click’, function (e) {
    const likeBtn = e.target.closest(‘[data-action=”toggle-like”]’);
    if (likeBtn) {
    e.preventDefault();
    toggleLike(likeBtn);
    return;
    }

    const replyBtn = e.target.closest(‘[data-action=”toggle-reply”]’);
    if (replyBtn) {
    e.preventDefault();
    openReplyBox(widget, Number(replyBtn.dataset.commentId || 0));
    return;
    }

    const cancelReplyBtn = e.target.closest(‘[data-action=”cancel-reply”]’);
    if (cancelReplyBtn) {
    e.preventDefault();
    closeReplyBox(cancelReplyBtn.closest(‘[data-role=”reply-box”]’));
    }
    });

    widget.addEventListener(‘submit’, function (e) {
    const replyForm = e.target.closest(‘.ev-comments__reply-form’);
    if (replyForm) {
    e.preventDefault();
    submitReply(replyForm);
    }
    });

    loadComments(true);
    }

    document.addEventListener(‘DOMContentLoaded’, function () {
    document.querySelectorAll(‘.ev-comments’).forEach(initCommentsWidget);
    });
    })();

    Trending

    Morocco back Ouahbi until 2030 as Atlas Lions shift focus to home World CupNews
    |Erick Kariuki
    |1 day ago

    Kenya secures Sh43.5 billion AfDB loan for economic inclusion and climate resilience

    Kenya secures Sh43.5 billion AfDB loan for economic inclusion and climate resilienceBusiness
    |Alfred Onyango
    |5 hours ago
    From cotton classics to high-tech icons: The evolution of World Cup-winning jerseysNews
    |Erick Kariuki
    |10 hours ago
    Sifuna vows to press on despite ODM SG removal, Senate shake‑upNews
    |Rachael Mutabasi
    |5 hours ago

    Police arrest fifth suspect in Mombasa Marikiti mob killing

    Police arrest fifth suspect in Mombasa Marikiti mob killingCoast
    |Farhiya Hussein
    |37 minutes ago
    The untold struggles of families with sickle cell disease amid lifelong uncertaintyHealth
    |Charity Kilei
    |3 hours ago
    Death toll rises to 24 in Ugandan school bus crash, 23 admittedNews
    |Mary Wambui
    |7 hours ago
    Katiba Institute, Muite demand answers over alleged quarantine of seven Americans at Laikipia Air BaseNews
    |Rachael Mutabasi
    |8 hours ago
    Elon Musk loses trillionaire status as SpaceX slide wipes billions off fortuneTechnology
    |Margaret Wanjiru
    |8 hours ago
    President Ruto’s official website hacked, cyber agencies handling breach – KabogoNews
    |Margaret Wanjiru
    |6 hours ago

    crash killed pupils Returning while
    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    Martin Akuma
    • Website

    Related Posts

    Middle East Becomes the World’s Second-Largest Premium Travel Market as Luxury Air Travel Soars: Why Are More Passengers Choosing Business and First Class?

    July 18, 2026

    Hidden Gem Tourism Explosion 2026: Uzbekistan, Albania, Moldova and Greenland Challenge the World’s Biggest Travel Hotspots

    July 18, 2026

    I lost my job while my wife was pregnant. It turned out to be exactly what my family needed.

    July 18, 2026
    Leave A Reply Cancel Reply

    Search
    Latest Post

    Middle East Becomes the World’s Second-Largest Premium Travel Market as Luxury Air Travel Soars: Why Are More Passengers Choosing Business and First Class?

    July 18, 2026

    The Ukrainian border, where Putin, Europe and the United States risk their demise

    July 18, 2026

    Pricing Carbon Without Derailing Growth: Lessons From 16 Economies | Science

    July 18, 2026

    United Airlines flights delayed nationwide after ‘technology outage’

    July 18, 2026

    Medical Gas Master Alarm Panel Market To Reach New Heights by 2035 Amid Global Healthcare Infrastructure Expansion – News and Statistics

    July 18, 2026

    Subscribe to Updates

    Get the latest creative news from FooBar about art, design and business.

    • Facebook
    • Twitter
    • Pinterest
    • Instagram
    • YouTube
    • TikTok
    ABS TV and ABS Network News is a leading Pan-African 24/7 broadcasting network delivering nonstop news, talk shows, lifestyle programs, and digital media content worldwide through Satellite, Streaming Platforms, and Roku TV.
     
    Based in the United States, we connect Africa to the world while empowering creators, journalists, and brands through innovative media and broadcasting services.
    Facebook X (Twitter) Pinterest WhatsApp Instagram

    Our Picks

    Middle East Becomes the World’s Second-Largest Premium Travel Market as Luxury Air Travel Soars: Why Are More Passengers Choosing Business and First Class?

    The Ukrainian border, where Putin, Europe and the United States risk their demise

    Pricing Carbon Without Derailing Growth: Lessons From 16 Economies | Science

    Most Popular

    United Airlines flights delayed nationwide after ‘technology outage’

    Medical Gas Master Alarm Panel Market To Reach New Heights by 2035 Amid Global Healthcare Infrastructure Expansion – News and Statistics

    New report faults Kenya’s laws for criminalising begging, hawking and loitering

    © 2026 Copyright. All Rights Reserved by ABSAFRICATV
    • Privacy Policy
    • Terms of Services

    Type above and press Enter to search. Press Esc to cancel.

    We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.