T.ME/BIBIL_0DAY
CasperSecurity


Server : Apache/2
System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64
User : gositeme ( 1004)
PHP Version : 8.2.29
Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Directory :  /home/gositeme/backups/lavocat.quebec/backup-20250730-021618/src/pages/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/gositeme/backups/lavocat.quebec/backup-20250730-021618/src/pages/accessibility.tsx
import React, { useState, useEffect } from 'react';
import LayoutWithSidebar from '../components/LayoutWithSidebar';
import { useRouter } from 'next/router';
import SEO from '@/components/SEO';

const translations = {
  en: {
    title: 'Accessibility Statement',
    lastUpdated: 'Last Updated: March 2024',
    sections: [
      {
        title: 'Our Commitment',
        content: 'We are committed to ensuring digital accessibility for people of all abilities. We strive to continually improve the user experience for everyone and apply the relevant accessibility standards.'
      },
      {
        title: 'Standards',
        content: 'We aim to conform to the Web Content Accessibility Guidelines (WCAG) 2.1 Level AA. These guidelines explain how to make web content more accessible for people with disabilities.'
      },
      {
        title: 'Measures',
        content: 'We take the following measures to ensure accessibility:\n\n1. Include accessibility as part of our mission statement\n2. Include accessibility throughout our internal policies\n3. Provide continual accessibility training for our staff\n4. Assign clear accessibility goals and responsibilities\n5. Employ formal accessibility quality assurance methods'
      },
      {
        title: 'Compatibility',
        content: 'This website is designed to be compatible with the following assistive technologies:\n\n1. Screen readers with modern web browsers\n2. Voice recognition software\n3. Operating systems with built-in accessibility features'
      },
      {
        title: 'Known Limitations',
        content: 'Despite our best efforts to ensure accessibility, there may be some limitations. Please contact us if you observe an issue.'
      },
      {
        title: 'Feedback',
        content: 'We welcome your feedback on the accessibility of our website. Please contact us at accessibility@action-collective.info if you encounter any accessibility barriers or have suggestions for improvement.'
      }
    ]
  },
  fr: {
    title: 'Déclaration d\'accessibilité',
    lastUpdated: 'Dernière mise à jour : Mars 2024',
    sections: [
      {
        title: 'Notre engagement',
        content: 'Nous nous engageons à assurer l\'accessibilité numérique pour les personnes de toutes capacités. Nous nous efforçons d\'améliorer continuellement l\'expérience utilisateur pour tous et d\'appliquer les normes d\'accessibilité pertinentes.'
      },
      {
        title: 'Normes',
        content: 'Nous visons à nous conformer aux Directives pour l\'accessibilité des contenus Web (WCAG) 2.1 Niveau AA. Ces directives expliquent comment rendre le contenu web plus accessible aux personnes handicapées.'
      },
      {
        title: 'Mesures',
        content: 'Nous prenons les mesures suivantes pour assurer l\'accessibilité :\n\n1. Inclure l\'accessibilité dans notre énoncé de mission\n2. Inclure l\'accessibilité dans toutes nos politiques internes\n3. Fournir une formation continue sur l\'accessibilité à notre personnel\n4. Attribuer des objectifs et des responsabilités clairs en matière d\'accessibilité\n5. Employer des méthodes formelles d\'assurance qualité de l\'accessibilité'
      },
      {
        title: 'Compatibilité',
        content: 'Ce site web est conçu pour être compatible avec les technologies d\'assistance suivantes :\n\n1. Lecteurs d\'écran avec des navigateurs web modernes\n2. Logiciels de reconnaissance vocale\n3. Systèmes d\'exploitation avec des fonctionnalités d\'accessibilité intégrées'
      },
      {
        title: 'Limitations connues',
        content: 'Malgré nos meilleurs efforts pour assurer l\'accessibilité, il peut y avoir certaines limitations. Veuillez nous contacter si vous observez un problème.'
      },
      {
        title: 'Commentaires',
        content: 'Nous accueillons favorablement vos commentaires sur l\'accessibilité de notre site web. Veuillez nous contacter à accessibility@action-collective.info si vous rencontrez des obstacles à l\'accessibilité ou si vous avez des suggestions d\'amélioration.'
      }
    ]
  }
};

const Accessibility = () => {
  const router = useRouter();
  const [isMobile, setIsMobile] = useState(false);
  const [currentLang, setCurrentLang] = useState('en');

  useEffect(() => {
    const checkMobile = () => {
      setIsMobile(window.innerWidth < 768);
    };
    
    checkMobile();
    window.addEventListener('resize', checkMobile);
    return () => window.removeEventListener('resize', checkMobile);
  }, []);

  const t = translations[currentLang as 'en' | 'fr'] || translations.en;

  return (
    <LayoutWithSidebar>
      <SEO 
        title="Accessibility Statement" 
        description="Our commitment to digital accessibility and inclusive design"
        keywords={['accessibility', 'WCAG', 'web accessibility', 'inclusive design', 'class action', 'prison rights', 'Bordeaux Prison']}
      />
      <div className={`container mx-auto ${isMobile ? 'px-3 py-6' : 'px-4 py-8'}`}>
        <div className={`flex ${isMobile ? 'flex-col gap-2 mb-4' : 'justify-between items-center mb-6'}`}>
          <h1 className={`font-bold text-primary ${isMobile ? 'text-2xl' : 'text-4xl'}`}>
            {t.title}
          </h1>
          <div className={`flex gap-2 ${isMobile ? 'justify-start' : ''}`}>
            <button
              onClick={() => setCurrentLang('en')}
              className={`px-3 py-1 rounded text-sm font-medium transition-colors ${
                currentLang === 'en' 
                  ? 'bg-primary text-white' 
                  : 'bg-gray-200 text-gray-700 hover:bg-gray-300'
              }`}
            >
              English
            </button>
            <button
              onClick={() => setCurrentLang('fr')}
              className={`px-3 py-1 rounded text-sm font-medium transition-colors ${
                currentLang === 'fr' 
                  ? 'bg-primary text-white' 
                  : 'bg-gray-200 text-gray-700 hover:bg-gray-300'
              }`}
            >
              Français
            </button>
          </div>
        </div>
        
        <p className={`text-gray-600 ${isMobile ? 'mb-6 text-sm' : 'mb-8'}`}>
          {t.lastUpdated}
        </p>

        <div className={`space-y-8 ${isMobile ? 'space-y-6' : ''}`}>
          {t.sections.map((section, index) => (
            <section key={index} className={`bg-white rounded-lg shadow-lg ${isMobile ? 'p-4' : 'p-6'}`}>
              <h2 className={`font-semibold text-gray-900 mb-4 ${isMobile ? 'text-lg mb-3' : 'text-2xl'}`}>
                {section.title}
              </h2>
              <div className={`text-gray-600 whitespace-pre-line ${isMobile ? 'text-sm' : ''}`}>
                {section.content}
              </div>
            </section>
          ))}
        </div>
      </div>
    </LayoutWithSidebar>
  );
};

export default Accessibility; 

CasperSecurity Mini