Close Menu
    Facebook X (Twitter) Instagram
    • Home
    • Contact Us
    • About Us
    • Privacy Policy
    • Terms Of Service
    • Advertisement
    Tuesday, July 21
    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»Politics»Four Kenyan seafarer groups form united front to engage government on welfare, maritime reforms
    Politics

    Four Kenyan seafarer groups form united front to engage government on welfare, maritime reforms

    Chukwu GodloveBy Chukwu GodloveJuly 19, 2026No Comments9 Mins Read
    Facebook Twitter Pinterest LinkedIn Tumblr Email
    Share
    Facebook Twitter LinkedIn Pinterest Email
    Post Views: 21

    Four Kenyan seafarer groups form united front to engage government on welfare, maritime reforms

    Stakeholders representing various seafarers’ organisations. The groups have united to push for jobs, welfare and policy reforms. (Photo: Farhiya Hussein)

    Listen to article

    4 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.

    Seafarers union urges government to establish national wage structure for Kenyan maritime workers

    Farhiya Hussein

     · 

    3 weeks agoRead nextOpens a fresh page.

    The four organisations say the new partnership will strengthen their engagement with the government on employment, welfare, training and maritime policy while giving Kenyan seafarers a unified voice.

    Four organisations representing Kenyan seafarers have signed a memorandum of understanding to coordinate their engagement on employment, welfare and maritime policy, saying the partnership will enable them to present their concerns to the government through a single platform.
    The agreement brings together the Seafarers Union of Kenya, Kenya Seafarers Welfare, Seafarers Movement and Mkulazini Independent Seafarers amid growing calls for stronger representation of workers in Kenya’s maritime sector.
    Speaking during the signing ceremony in Mombasa, Seafarers Union of Kenya Chairman Captain Munga said the organisations had agreed to work together to address challenges facing seafarers instead of pursuing separate agendas.

    More To Read

    • Seafarers union urges government to establish national wage structure for Kenyan maritime workers

    “This is the beginning of a joint effort by seafarers to engage the government on issues affecting our members and seek lasting solutions,” he said.
    Captain Munga said the organisations would develop a joint action plan outlining their immediate, medium-term and long-term priorities before submitting it to the government for consideration.
    He said that although Kenya has continued to invest in the blue economy, seafarers still face challenges that require greater attention, including access to training, employment opportunities and welfare support.

    Latest Stories

    • Community mediators trained to resolve disputes before they reach court
    • Kenya-Tanzania rail link moves closer as Voi–Taveta project hits 70 per cent
    • ECOWAS backs Ghana’s anti-xenophobia push at AU, endorses reparatory justice agenda
    • Kindiki says political differences should not destroy national unity, urges Kenyans to reject division

    He added that the organisations would seek closer engagement with both the national and county governments to address these issues.
    “We want to engage the government through one coordinated platform instead of having different groups raising the same concerns independently,” he said.
    Albert Andembesa said the collaboration comes at a time when the maritime sector is shifting its focus from policy formulation to implementation, noting that existing legislation should be fully enforced to benefit Kenyan seafarers.
    He said effective implementation of maritime laws would improve employment opportunities and working conditions for trained seafarers.
    Maritime stakeholder Hamisi Mwaguya said the agreement followed years of discussions on the need to unite organisations representing seafarers.
    He said a unified platform would make it easier for stakeholders to engage the government on issues affecting the maritime sector.
    During the event, Seafarers Union of Kenya Shop Steward Alfan Jilani urged the national government to invest in commercial vessels, saying this would create more employment opportunities for qualified Kenyan seafarers.
    He also raised concerns about poor working conditions in parts of the industry, saying some seafarers are paid low wages while others work without formal employment contracts, leaving them vulnerable to exploitation.
    Jilani said the organisations hoped that speaking with one voice would strengthen efforts to address these challenges through dialogue with the relevant authorities.
    Stakeholders said better coordination among industry players could help address labour concerns while supporting Kenya’s efforts to expand opportunities in shipping and other marine-related industries.

    Other Topics To Read

    Top Stories Today

    • Kindiki urges Kenyans to reject division and protect national unity
    • Professional mediators trained to ease court case backlog
    • Voi–Taveta railway upgrade hits 70 per cent completion
    • ECOWAS backs Ghana’s anti-xenophobia push at AU
    • US praises Somalia after suspect in Sh32 billion Covid fraud is extradited
    • DCI investigates violence and armed goons in Ol Kalou mini-poll

    `;
    }

    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

    Kenyans withdraw billions from Boma Yangu despite growth in housing savings

    Kenyans withdraw billions from Boma Yangu despite growth in housing savingsNews
    |Lucy Mumbi
    |14 hours ago
    Kenya-Tanzania rail link moves closer as Voi–Taveta project hits 70 per centNews
    |Rachael Mutabasi
    |1 hour ago
    Lamu Leaders, residents back Sh2.2 trillion Dangote-linked oil refinery, demand local inclusionCoast
    |Farhiya Hussein
    |11 hours ago
    Sh32 billion Covid relief fraud suspect flown to US as Somalia deepens law enforcement cooperationSomalia
    |Abdirahman Khalif
    |2 hours ago
    Kindiki says political differences should not destroy national unity, urges Kenyans to reject divisionPolitics
    |Rachael Mutabasi
    |2 hours ago
    UN humanitarians step up Ebola response amid growing violence in DR CongoRegional
    |XINHUA
    |1 day ago
    Shadows of past political violence shape lives of young Africans for years: A study of nine countriesAfrica
    |The Conversation
    |4 hours ago
    Katiba Institute, Muite demand answers over alleged quarantine of seven Americans at Laikipia Air BaseNews
    |Rachael Mutabasi
    |1 day ago
    Ol Kalou violence: Amnesty Kenya wants CS Murkomen to account for police failure during pollsNews
    |Lucy Mumbi
    |10 hours ago

    Two American service members killed in Jordan amid renewed US-Iran hostilities

    Two American service members killed in Jordan amid renewed US-Iran hostilitiesWorld
    |Bashir Mbuthia
    |1 day ago

    form Four groups Kenyan seafarer
    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    Chukwu Godlove

    Related Posts

    15-year-old boy chop accuse say e sexually molest eight girls

    July 21, 2026

    The equilibrium nobody wants in the civil service: Political survival, professional neutrality, and the coordination problem

    July 21, 2026

    Kenyan Government Official Encourages Responsible Use of Social Media among Youths at AMECEA Plenary Assembly

    July 21, 2026
    Leave A Reply Cancel Reply

    Search
    Latest Post

    US WINS WITH AFRICA TRADE and AMERICA’S COTTON

    July 21, 2026

    IMF: AI could lift Sub-Saharan Africa’s economy by 4% over next decade

    July 21, 2026

    Villa and Newcastle Circle as Betis Stand Firm on Abde’s €60M Clause – Africa Top Sports

    July 21, 2026

    Kenya wins bid to host first

    July 21, 2026

    IFAW shows up for rangers in the Wildlife Ranger Challenge

    July 21, 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

    US WINS WITH AFRICA TRADE and AMERICA’S COTTON

    IMF: AI could lift Sub-Saharan Africa’s economy by 4% over next decade

    Villa and Newcastle Circle as Betis Stand Firm on Abde’s €60M Clause – Africa Top Sports

    Most Popular

    Kenya wins bid to host first

    IFAW shows up for rangers in the Wildlife Ranger Challenge

    USA tour diary: The Open champion, a special Szoboszlai selfie, Mr. Beef and more from Chicago

    © 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.