> ## Documentation Index
> Fetch the complete documentation index at: https://docs.canadava.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Liste de vérification Airbus A220-300

> Liste de vérification complète vACA A220-300 avec flows, annonces, programme de volets et éléments de mémoire d'urgence

export const CockpitChecklist = ({sections = [], title, printLogoSrc = "/logo/light.svg", printNotice = "For flight-simulation training only - not for real-world aviation use."}) => {
  const allItems = sections.flatMap((s, si) => (s.items || []).map((_, ii) => `${si}-${ii}`));
  const [checked, setChecked] = useState({});
  const [isFullscreen, setIsFullscreen] = useState(false);
  const [backdropId] = useState(() => `cockpit-bd-${Math.random().toString(36).slice(2, 10)}`);
  const [printId] = useState(() => `cockpit-print-${Math.random().toString(36).slice(2, 10)}`);
  const fullscreenRootRef = useRef(null);
  const toggle = key => setChecked(prev => ({
    ...prev,
    [key]: !prev[key]
  }));
  const reset = () => setChecked({});
  const openFullscreen = () => setIsFullscreen(true);
  const closeFullscreen = () => setIsFullscreen(false);
  const clearPrintTarget = () => {
    if (typeof document === "undefined") return;
    const printNode = document.getElementById(printId);
    document.body.classList.remove("cockpit-printing");
    if (printNode) {
      printNode.setAttribute("data-print-active", "false");
    }
  };
  const printChecklist = () => {
    if (typeof window === "undefined" || typeof document === "undefined") return;
    const printNode = document.getElementById(printId);
    if (!printNode) return;
    printNode.setAttribute("data-print-active", "true");
    document.body.classList.add("cockpit-printing");
    window.addEventListener("afterprint", clearPrintTarget, {
      once: true
    });
    window.requestAnimationFrame(() => {
      window.print();
    });
  };
  const doneCount = Object.values(checked).filter(Boolean).length;
  const totalCount = allItems.length;
  useEffect(() => {
    if (typeof document === "undefined") return;
    [backdropId, printId].forEach(id => {
      const node = document.getElementById(id);
      if (node && node.parentNode !== document.body) {
        document.body.appendChild(node);
      }
    });
    return () => {
      [backdropId, printId].forEach(id => {
        const current = document.getElementById(id);
        if (current && current.parentNode) {
          current.parentNode.removeChild(current);
        }
      });
    };
  }, [backdropId, printId]);
  useEffect(() => {
    if (!isFullscreen) return;
    const onKey = e => {
      if (e.key === "Escape") setIsFullscreen(false);
    };
    document.addEventListener("keydown", onKey);
    const prevOverflow = document.body.style.overflow;
    document.body.style.overflow = "hidden";
    return () => {
      document.removeEventListener("keydown", onKey);
      document.body.style.overflow = prevOverflow;
    };
  }, [isFullscreen]);
  useEffect(() => {
    if (!isFullscreen) return;
    if (typeof window === "undefined") return;
    const root = fullscreenRootRef.current;
    if (!root) return;
    const MIN_SCALE = 0.7;
    const MAX_SCALE = 1;
    const MIN_LEADER_PX = 24;
    const GAP_PX = 16;
    const SAFETY_PX = 2;
    const measure = () => {
      root.style.setProperty("--cockpit-fs-font-scale", "1");
      void root.offsetWidth;
      const items = root.querySelectorAll(".cockpit-item");
      let worst = 1;
      items.forEach(item => {
        const label = item.querySelector(".cockpit-item-label");
        const value = item.querySelector(".cockpit-item-value");
        if (!label || !value) return;
        const cs = window.getComputedStyle(item);
        const padL = parseFloat(cs.paddingLeft) || 0;
        const padR = parseFloat(cs.paddingRight) || 0;
        const available = item.clientWidth - padL - padR;
        const needed = label.scrollWidth + value.scrollWidth + MIN_LEADER_PX + GAP_PX + SAFETY_PX;
        if (needed > available && available > 0) {
          const ratio = available / needed;
          if (ratio < worst) worst = ratio;
        }
      });
      const next = Math.max(MIN_SCALE, Math.min(MAX_SCALE, worst));
      root.style.setProperty("--cockpit-fs-font-scale", String(next));
    };
    measure();
    let raf = 0;
    const ro = new ResizeObserver(() => {
      cancelAnimationFrame(raf);
      raf = requestAnimationFrame(measure);
    });
    ro.observe(root);
    const backdrop = document.getElementById(backdropId);
    if (backdrop) ro.observe(backdrop);
    return () => {
      cancelAnimationFrame(raf);
      ro.disconnect();
    };
  }, [isFullscreen, sections, backdropId]);
  useEffect(() => clearPrintTarget, [printId]);
  const renderChart = (variant, rootRef) => <div ref={rootRef} className={`cockpit-checklist${variant === "fullscreen" ? " fullscreen" : ""}`}>
      <div className="cockpit-checklist-header">
        {title && <span className="cockpit-checklist-title">{title}</span>}
        <div className="cockpit-checklist-meta">
          <span className="cockpit-checklist-count">
            {doneCount}/{totalCount}
          </span>
          {doneCount > 0 && <button type="button" className="cockpit-checklist-btn" onClick={reset}>
              Reset
            </button>}
          <button type="button" className="cockpit-checklist-btn" onClick={printChecklist}>
            Print
          </button>
          {variant === "fullscreen" ? <button type="button" className="cockpit-checklist-btn" onClick={closeFullscreen} aria-label="Exit fullscreen">
              Close ✕
            </button> : <button type="button" className="cockpit-checklist-btn" onClick={openFullscreen} aria-label="Open fullscreen">
              Fullscreen ⤢
            </button>}
        </div>
      </div>

      <div className="cockpit-checklist-scroll">
        <div className="cockpit-checklist-grid">
          {sections.map((section, si) => <div key={si} className="cockpit-section">
              <div className="cockpit-section-header">
                <span className="cockpit-section-title">{section.title}</span>
                {section.subtitle && <span className="cockpit-section-subtitle">
                    {section.subtitle}
                  </span>}
              </div>
              <div className="cockpit-section-items">
                {(section.items || []).map((item, ii) => {
    const key = `${si}-${ii}`;
    const isChecked = !!checked[key];
    return <button key={key} type="button" className={`cockpit-item${isChecked ? " checked" : ""}${item.strong ? " strong" : ""}`} onClick={() => toggle(key)}>
                      <span className="cockpit-item-label">{item.label}</span>
                      <span className="cockpit-item-leader" aria-hidden="true" />
                      <span className="cockpit-item-value">{item.value}</span>
                    </button>;
  })}
              </div>
            </div>)}
        </div>
      </div>
    </div>;
  const renderPrintLayout = () => <div id={printId} className="cockpit-print-root" data-print-active="false" aria-hidden="true">
      <article className="cockpit-print-sheet">
        <header className="cockpit-print-header">
          <img className="cockpit-print-logo" src={printLogoSrc} alt="vACA" />
          <div className="cockpit-print-heading">
            {title && <h1>{title}</h1>}
            {printNotice && <div className="cockpit-print-notice">{printNotice}</div>}
          </div>
        </header>

        <div className="cockpit-print-grid">
          {sections.map((section, si) => <section key={si} className="cockpit-print-section">
              <div className="cockpit-print-section-header">
                <span className="cockpit-print-section-title">
                  {section.title}
                </span>
                {section.subtitle && <span className="cockpit-print-section-subtitle">
                    {section.subtitle}
                  </span>}
              </div>
              <div className="cockpit-print-section-items">
                {(section.items || []).map((item, ii) => <div key={`${si}-${ii}`} className={`cockpit-print-item${item.strong ? " strong" : ""}`}>
                    <span className="cockpit-print-item-label">
                      {item.label}
                    </span>
                    <span className="cockpit-print-item-leader" aria-hidden="true" />
                    <span className="cockpit-print-item-value">
                      {item.value}
                    </span>
                  </div>)}
              </div>
            </section>)}
        </div>
      </article>
    </div>;
  return <>
      {renderChart("inline")}
      {renderPrintLayout()}
      <div id={backdropId} className="cockpit-fullscreen-backdrop" data-open={isFullscreen ? "true" : "false"} onClick={e => {
    if (e.target === e.currentTarget) closeFullscreen();
  }}>
        {isFullscreen && renderChart("fullscreen", fullscreenRootRef)}
      </div>
    </>;
};

<div className="cover-image-frame">
  <Frame caption="Source de l'image : Air Canada">
    <img src="https://mintcdn.com/virtualaircanada/iQJB1gDJzxYoDw5J/images/aops/fleet/a-220.png?fit=max&auto=format&n=iQJB1gDJzxYoDw5J&q=85&s=316c488d388d247c6306eb57e8ba6a97" alt="Airbus A220-300" noZoom className="cover-image" width="800" height="460" data-path="images/aops/fleet/a-220.png" />
  </Frame>
</div>

# Airbus A220‑300

**Liste de vérification complète normale et anormale ASOP**

<Info>Pour la simulation de vol uniquement - PAS pour un usage aéronautique réel.</Info>

**Version 1.1 - 23 mai 2026**

## Légende

* **PF** - Pilot Flying  **PM** - Pilot Monitoring
* *Italique* - Annonces  **Gras** - Élément de mémoire/déclencheur
* (A) - Annonce/alerte automatique  (M) - Manoeuvre

***

## Listes de vérification des opérations normales

<CockpitChecklist
  title="A220 Opérations normales"
  sections={[
{
  title: "Mise sous tension et acceptation",
  items: [
    { label: "Freins de parc", value: "SET", strong: true },
    { label: "Batteries 1 et 2", value: "ON (VÉRIFIER >=24 V)" },
    { label: "Alimentation externe", value: "ON (SI AVAIL)" },
    { label: "APU Master", value: "ON - START" },
    { label: "APU Generator", value: "ON BUS (LORSQUE AVAIL)" },
    { label: "IRS (2)", value: "NAV", strong: true },
    { label: "Oxygène", value: "TESTÉ, 100 %" },
    { label: "Goupilles / caches de train", value: "REMOVED ET STOWED" },
  ],
},
{
  title: "Préparation préliminaire du poste",
  items: [
    { label: "CVR", value: "TEST", strong: true },
    { label: "Emergency Exit Lights", value: "ARMED", strong: true },
    { label: "EICAS", value: "VÉRIFIÉ (CAS CLEAR)", strong: true },
    { label: "ELT", value: "ARMED", strong: true },
  ],
},
{
  title: "Préparation du poste",
  subtitle: "Flows",
  items: [
    { label: "Overhead - Glareshield - Pedestal", value: "FLOW COMPLET", strong: true },
    { label: "Pompes carburant", value: "ON (VÉRIFIER QTÉ)" },
    { label: "Pompes hydrauliques (Green et Yellow)", value: "ON" },
    { label: "Window Heat", value: "ON" },
    { label: "Pressurisation (IASC)", value: "AUTO" },
    { label: "Probe Heat", value: "OFF (JUSQU'AU DÉMARRAGE MOTEUR)" },
    { label: "Écrans / Pro Line Fusion", value: "NORMAL, AUTO BRT" },
  ],
},
{
  title: "Préparation du poste",
  subtitle: "Liste (PM)",
  items: [
    { label: "Liste préparation du poste", value: "PM INITIE" },
    { label: "Goupilles et caches de train", value: "REMOVED" },
    { label: "IRS", value: "ALIGNED" },
    { label: "Qté carburant", value: "___ KG, ÉQUILIBRÉE" },
    { label: "Briefing décollage", value: "COMPLÉTÉ" },
    { label: "Liste", value: "COMPLÈTE" },
  ],
},
{
  title: "Avant démarrage",
  items: [
    { label: "Porte du poste de pilotage", value: "CLOSED ET LOCKED" },
    { label: "ACARS", value: "INITIALIZED" },
    { label: "Carburant", value: "___ KGS, POMPES ON" },
    { label: "Passenger Signs", value: "ON ET AUTO" },
    { label: "Fenêtres", value: "LOCKED" },
    { label: "FCP", value: "V2 ___, HDG ___, ALT ___" },
    { label: "Vitesses de décollage", value: "V1 ___, VR ___, V2 ___" },
    { label: "Préparation FMS", value: "COMPLÉTÉE" },
    { label: "Trims (direction et ailerons)", value: "FREE ET ZERO" },
    { label: "Feu anticollision", value: "ON" },
    { label: "Transpondeur", value: "AUTO / XPDR" },
    { label: "Freins de parc", value: "SET" },
    { label: "EICAS Status", value: "VÉRIFIÉ" },
  ],
},
{
  title: "Démarrage moteur",
  subtitle: "Démarrage automatique FADEC (ENG 1 en premier)",
  items: [
    { label: "APU Bleed", value: "ON" },
    { label: "Moteur 1 en premier", value: "ENG 1 START SELECTOR - START", strong: true },
    { label: "FADEC", value: "GÈRE LE DÉMARRAGE AUTOMATIQUEMENT" },
    { label: "Surveillance", value: "ROTATION N2, MONTÉE EGT/ITT (LIMITE DÉMARRAGE 1054 °C)" },
    { label: "À la stabilisation au ralenti", value: "PRESSION D'HUILE ET PARAMÈTRES VERT" },
    { label: "Moteur 2", value: "ENG 2 START SELECTOR - START (APRÈS ENG 1 STABLE)", strong: true },
    { label: "Les deux stables", value: "APU BLEED OFF, START SELECTORS OFF" },
  ],
},
{
  title: "Après démarrage",
  subtitle: "Flows",
  items: [
    { label: "APU", value: "OFF (SI NON REQUIS)" },
    { label: "Generators 1 et 2", value: "ON" },
    { label: "Probe Heat", value: "ON" },
    { label: "Antigivrage", value: "AS REQD" },
    { label: "Commandes de vol", value: "VÉRIFIÉES (FULL TRAVEL, FBW)" },
    { label: "Volets", value: "T/O CONFIG (2 OU 3)" },
    { label: "Trim de profondeur", value: "___ UNITS" },
  ],
},
{
  title: "Après démarrage",
  subtitle: "Liste (PM)",
  items: [
    { label: "Liste après démarrage", value: "PM INITIE" },
    { label: "Antigivrage", value: "____" },
    { label: "Trims (direction et ailerons)", value: "ZERO" },
    { label: "Volets", value: "__ / ____" },
    { label: "Trim de profondeur", value: "__ UNITS" },
    { label: "EICAS", value: "VÉRIFIÉ" },
    { label: "Autobrake", value: "RTO" },
  ],
},
{
  title: "Roulage",
  items: [
    { label: "Vitesse de roulage en ligne droite", value: "<= 30 KT" },
    { label: "Virages", value: "<= 10 KT" },
    { label: "Nosewheel Steering", value: "TILLER (±70°) / PÉDALIER (±7°)" },
  ],
},
{
  title: "Avant décollage",
  subtitle: "Au-dessus de la ligne",
  items: [
    { label: "Commandes de vol", value: "VÉRIFIÉES" },
    { label: "FCP", value: "VÉRIFIER (V2, HDG, ALT)" },
    { label: "Volets", value: "CONFIRMER RÉGLAGE (2 OU 3), GREEN" },
    { label: "V-Speeds", value: "ANNONCÉES" },
    { label: "Trim de profondeur", value: "___ UNITS" },
    { label: "Cabine", value: "SECURE" },
  ],
},
{
  title: "Avant décollage",
  subtitle: "Sous la ligne",
  items: [
    { label: "TCAS", value: "TA/RA" },
    { label: "Engine Start Selectors", value: "CONT" },
    { label: "Strobes", value: "ON" },
    { label: "Transpondeur", value: "TA/RA" },
    { label: "Annonce de fin", value: "CABINE PRÊTE, SOUS LA LIGNE COMPLÈTE" },
  ],
},
{
  title: "Course au décollage et montée initiale",
  subtitle: "Annonces de mémoire",
  items: [
    { label: "PM \"80 Knots\"", value: "PF \"CHECKED\"" },
    { label: "PM \"V1\"", value: "-" },
    { label: "PM \"Rotate\"", value: "PF ROTATION VERS ~15° D'ASSIETTE" },
    { label: "PM \"Positive Climb\"", value: "PF \"GEAR UP\"" },
  ],
},
{
  title: "Après décollage / Montée",
  items: [
    { label: "Altitude d'accélération atteinte", value: "CLIMB THRUST (CLB)", strong: true },
    { label: "Rentrée des volets", value: "SELON LE PROGRAMME (SPEED BUGS)" },
    { label: "Engine Bleeds", value: "ON" },
    { label: "10 000 FT", value: "\"10 000 - LIGHTS OFF\"" },
    { label: "STD QNH", value: "RÉGLÉS LES DEUX (AU-DESSUS DE L'ALTITUDE DE TRANSITION)" },
  ],
},
{
  title: "Croisière (toutes les heures)",
  items: [
    { label: "Vérification carburant", value: "FOB VS PLAN (±300 KG)" },
    { label: "Systèmes", value: "EICAS CAS CLEAR" },
    { label: "Séquence de waypoints", value: "NEXT ET ETA À COMPARER" },
    { label: "Vitesse de croisière", value: "M 0.76 - M 0.80" },
  ],
},
{
  title: "Préparation de la descente",
  items: [
    { label: "ATIS / STAR", value: "REÇUS ET INSÉRÉS" },
    { label: "Briefing d'approche", value: "COMPLÉTÉ" },
    { label: "Données d'atterrissage", value: "VREF ___, MINIMUMS ___" },
    { label: "Pressurisation (IASC)", value: "LAND ALT ___" },
    { label: "Autobrake", value: "___ (LO, MED OU MAX)" },
    { label: "EICAS", value: "VÉRIFIÉ" },
  ],
},
{
  title: "Approche",
  items: [
    { label: "Altimètres", value: "SET (QNH)" },
    { label: "Minimums", value: "__ FT" },
    { label: "Briefing d'approche", value: "CONFIRMÉ" },
    { label: "Ceintures", value: "ON" },
  ],
},
{
  title: "Atterrissage",
  items: [
    { label: "1 000 FT", value: "STABLE - TRAIN SORTI, VOLETS 4 OU 5" },
    { label: "500 FT", value: "\"LANDING\" - SCAN FINAL" },
    { label: "50/40/30/20/10 FT", value: "(A) - ARRONDI" },
  ],
},
{
  title: "Après atterrissage",
  items: [
    { label: "Speed Brake", value: "DOWN" },
    { label: "Volets", value: "UP (0)" },
    { label: "Probe Heat", value: "AS REQD" },
    { label: "APU", value: "START (SI REQUIS)" },
    { label: "Engine Start Selectors", value: "OFF" },
    { label: "Strobes", value: "OFF" },
    { label: "Transpondeur", value: "STBY" },
    { label: "Radar météo", value: "OFF" },
    { label: "Annonce de fin", value: "LISTE APRÈS ATTERRISSAGE COMPLÈTE" },
  ],
},
{
  title: "Arrêt des moteurs",
  items: [
    { label: "Freins de parc", value: "SET", strong: true },
    { label: "Engine Start Selectors (1 et 2)", value: "OFF" },
    { label: "Ceintures", value: "OFF" },
    { label: "Feu anticollision", value: "OFF" },
    { label: "Pompes carburant", value: "OFF" },
    { label: "Panneau hydraulique", value: "SET" },
  ],
},
{
  title: "Sécurisation de l'aéronef",
  items: [
    { label: "IRS (les deux)", value: "OFF" },
    { label: "Emergency Exit Lights", value: "OFF" },
    { label: "Window Heat", value: "OFF" },
    { label: "Batteries 1 et 2", value: "OFF" },
    { label: "Rapport après-vol", value: "ENVOYÉ", strong: true },
  ],
},
]}
/>

### Mises en garde et notes

<Warning>
  **Démarrage interrompu** - Engine Start Selector OFF immédiatement. Le FADEC initie une ventilation sèche automatique (\~60 s à \~30 % N2) si le moteur est chaud. Limite EGT/ITT au démarrage 1054 °C (le PW1500G utilise techniquement l'ITT; l'affichage du poste montre l'EGT).
</Warning>

<Note>
  **ENG 1 en premier** - Selon la SOP Airbus actuelle (en vigueur 2025), l'A220 démarre ENG 1 avant ENG 2. Cela s'aligne avec le flow de roulage monomoteur au départ.
</Note>

<Note>
  **Roulage** - Vérification des freins au premier mouvement *"Brakes checked"* - freins électriques, vérifier le fonctionnement normal sur EICAS.
</Note>

<Note>
  **Atterrissage** - Les déporteurs au sol se déploient automatiquement à l'atterrissage. Inversion de poussée au toucher des roues, ralenti inversé à 60 kt. Freins électriques - vérifier la décélération sur EICAS.
</Note>

***

## Éléments anormaux / de mémoire (extrait)

### FEU MOTEUR ou DOMMAGE GRAVE (en vol)

| Étape | Action                                                            |
| ----- | ----------------------------------------------------------------- |
| 1     | **Autothrust (si engagé)** -> DISENGAGE                           |
| 2     | **Manette de poussée (affectée)** -> CONFIRM -> IDLE              |
| 3     | **Engine Start Selector (affecté)** -> CONFIRM -> OFF             |
| 4     | **Fire Push Button** -> CONFIRM -> PUSH                           |
| 5     | Si CAS feu persiste -> AGENT 1 discharge, maintenir 1 s           |
| 6     | Après 30 s si toujours allumé -> AGENT 2 discharge, maintenir 1 s |

### DESCENTE D'URGENCE

| Élément                               | Action                                     |
| ------------------------------------- | ------------------------------------------ |
| **Annonce**                           | *"EMERGENCY DESCENT"* (×3)                 |
| SIGNS                                 | ON                                         |
| Passenger Oxygen                      | ON                                         |
| **Engine Start Selectors (les deux)** | CONT                                       |
| **Manettes de poussée**               | REDUCE (minimum)                           |
| **Speed Brake**                       | FLIGHT DETENT                              |
| **Vitesse cible**                     | VMO 330 kt / MMO M 0.82                    |
| Descendre                             | Altitude de sécurité minimale ou 10 000 ft |

*(Consultez le QRH pour la procédure complète.)*

***

## Programme rapide des volets (A220-300)

| Config       | Limite affichée (VFE) | Utilisation typique                       |
| ------------ | --------------------- | ----------------------------------------- |
| Flaps 0 (UP) | 330 kt / M 0.82       | Croisière / lisse                         |
| Flaps 1      | 230 kt                | Décélération initiale                     |
| Flaps 2      | 210 kt                | Décollage (masse légère)                  |
| Flaps 3      | 210 kt                | Décollage (masse élevée)                  |
| Flaps 4      | 190 kt                | Atterrissage (normal)                     |
| Flaps 5      | 170 kt                | Atterrissage (lourd / court / contaminée) |

**Limites du train :** VLO extension 250 kt · VLO rétraction 220 kt · VLE 250 kt

***

### Historique des révisions

| Rév | Date         | Note                                                                                                                             | Auteur    |
| --- | ------------ | -------------------------------------------------------------------------------------------------------------------------------- | --------- |
| 1.0 | 28 mars 2026 | Publication initiale de la liste                                                                                                 | ACVA Team |
| 1.1 | 23 mai 2026  | Mise à jour de précision : ENG 1 en premier selon la SOP Airbus actuelle, limites VFE placard corrigées (230/210/210/190/170 kt) | ACVA Team |

***

<Note>
  ### Avis de non-responsabilité

  Ces listes de vérification sont des **adaptations abrégées** des procédures du domaine public Airbus / Bombardier pour la simulation. Elles ne reproduisent pas le texte propriétaire du FCOM et ne doivent **pas** être utilisées pour des opérations commerciales.
</Note>
