Come l'hanno fatto il progetto di accessibilità

Forse tu, o qualcuno che conosci, hai sperimentato le difficoltà dell'interazione con il computer per i disabili. In generale, i sistemi operativi e le suite software hanno predisposto l'accessibilità per il pubblico ipoacusico, il pubblico con disabilità visive e l'internazionalizzazione; tuttavia, il web aperto non ha raggiunto il più rapidamente. Molti siti ignorano completamente l'accessibilità.

Forse uno dei motivi di ciò è che probabilmente non c'è una fonte di contenuti aggiornati e digeribili incentrati interamente sull'accessibilità.

Il Progetto di accessibilità (a11yproject.com) sta cambiando questo. Offrendo una piattaforma aperta (tramite GitHub), a11yproject sta creando un insieme di contenuti auto-curante, di massa, che è digeribile, aggiornato, e perdonare. (Vedi la loro pagina.)

Il Progetto sull'accessibilità è un ottimo esempio di come la tecnologia possa aiutare a supportare lo sviluppo collaborativo. Chiunque può contribuire. Il costo del supporto per questo è quasi nulla, e la gestione del sito è minima, guidata dalla comunità.


La gente

Ci sono molte persone dietro a11yproject, tra cui Dennis Gaebel di Grey Ghost Visuals, Dave Rupert a Paravel, Jamie Piper ad Alliants, Mat Marquis e una sfilza di altri. (Dai un'occhiata alla lista dei contributori degli avatar nella parte inferiore della home page.)

Questo è un gruppo che vale la pena iscriversi, e la parte fantastica è che puoi farlo semplicemente contribuendo!

Quindi, come stanno facendo?

Il Progetto di accessibilità è impostato per la collaborazione remota e asincrona. Il sito non utilizza un database e non richiede alcun provider di hosting. Ecco come lo fanno.


GitHub

Il sito è interamente ospitato da GitHub tramite GitHub Pages. GitHub Pages consente agli utenti di GitHub di pubblicare contenuti statici e li pubblica come pagina web.

GitHub Pages è, in generale, creato per supportare progetti e utenti, dando loro un posto dove ospitare documentazione, esempi, eccetera. Anche i membri di GitHub hanno reso le pagine compatibili con Jekyll.


Jekyll

Jekyll è il framework del cavallo di battaglia basato sulla gemma di Ruby dietro a The Accessibility Project. Costruito da Tom Preston-Werner e altri presso GitHub, Jekyll è un generatore di siti statici che consente agli utenti di creare post e pagine in Markdown o Tessile (anche se a11y post sono solo Markdown).

Jekyll utilizza le impostazioni di configurazione di YAML per aiutare a generare pagine / post localmente. Questi post e pagine vengono visualizzati come file HTML statici, JavaScript e CSS. (Scopri di più su Jekyll qui: wiki di utilizzo di Jekyll su GitHub.) Se vuoi contribuire a The Accessibility Project, questo è il modo migliore per creare un nuovo post.

  1. Clona il repository
  2. Uso fascio per installare tutte le dipendenze. Il Gemfile specifica tre gemme che verranno installate. (Inoltre, avrai bisogno di Bundler per fascio lavorare.)
  3. Uso rastrello -T per elencare i comandi che è possibile utilizzare specifici per questo progetto. rastrello, o "Ruby make", è uno strumento che consente di astrarre compiti ripetitivi o automatizzati in un file all'interno della directory di lavoro (chiamato Rakefile) e richiamato tramite la riga di comando.
  4. Uso rake post title = "Qualcosa di interessante sull'accessibilità" per creare un post.
  5. Aggiungi il tuo post tramite il normale flusso di lavoro Git (vedi sotto per alcuni suggerimenti utili per questo specifico progetto)

Una funzionalità ancora più interessante di GitHub Pages: compila il tuo sito Jekyll per te, se lo desideri.

Una breve nota: perché statico?

Perché vorresti andare con un generatore di siti statici? Ci sono molte ragioni per cui questa è una buona risposta a molti problemi di sviluppo. Innanzitutto, i file statici sono facili da servire. Fondamentalmente ogni server web può servire file statici. Oltre a questo, servire file statici è generalmente incredibilmente veloce ed efficiente.

Allo stesso modo, il sovraccarico di servire file statici è molto più basso sul server. La riduzione della gestione del contenuto in un ambiente di sviluppo locale riduce l'incertezza e la necessità di un ambiente orientato al sysadmin.

Un altro buon motivo per andare con un generatore di siti statici è la sicurezza; i siti statici sono infinitamente meno vulnerabili ai problemi di sicurezza come l'iniezione di SQL rispetto ai siti che supportano il database. Infine, la maggior parte dei contenuti periodici si presta già a file statici; il contenuto non viene generato da un algoritmo basato sui dati o da dati in tempo reale. Piuttosto, è un contenuto basato sul testo che non cambierà (a meno che le modifiche non vengano apportate manualmente). L'importante distinzione qui è che i post sono creati manualmente e il layout in giro il contenuto non cambia in modo dinamico. Questi sono tutti segnali che l'uso di file statici è una buona soluzione.

Spiegazione di file strani: .rvmrc

RVM è uno strumento che gestisce più installazioni del linguaggio di programmazione Ruby. RVM utilizza .rvmrc file per assicurarsi che la versione corretta di Ruby sia selezionata per essere eseguita per un determinato progetto. Un suggerimento utile: qualsiasi file che inizia con a . è molto probabilmente un file di configurazione; in particolare, i file .rc o "runtime configuration", generalmente vengono valutati al momento dell'esecuzione / runtime, di solito solo una volta.

Spiegazione di file strani: codekit-config.json

Il file di configurazione CodeKit viene utilizzato per generare le impostazioni per CodeKit, che compila i file SASS per il progetto. Questa configurazione aiuta a mantenere la conformità tra i diversi utenti. Potresti riconoscere il tipo di file (JSON): il file è un oggetto JavaScript valido. JSON viene anche utilizzato per molte altre configurazioni di ambiente.


Problemi GitHub + Richieste pull

Il "miglior flusso di lavoro web moderno" è un argomento sfuggente, ma molte persone hanno pubblicato di recente sulla flessibilità e sull'usabilità dell'integrazione dello sviluppo orientato alle funzionalità che ruota intorno alla discussione con GitHub Issues e Pull Requests. (Dai un'occhiata al grande Speaker Deck di Zach Holman sull'argomento.) Per archiviare un problema, vai semplicemente su un progetto e fai clic su Issues, e spiega il problema. Il proprietario del progetto può classificare il problema e rispondere ad esso; se una patch o una richiesta pull risolve il problema, è possibile utilizzare il linguaggio naturale nel messaggio di commit Git per contrassegnare il problema come risolto. Ad esempio, "Risolto il problema n. 42". Quindi, puoi inviare una richiesta di pull che faccia riferimento ad un commit specifico; se tale richiesta di ricezione viene accettata, tale problema viene contrassegnato come risolto.


Ma facciamo un passo indietro qui, prima che ci mettiamo a parlare dei flussi di lavoro di Git per ore e ore.

Il modo in cui Accessibility Project utilizza GitHub è un modo per gestire i contenuti, sia nella fase pre-pubblicata che nella fase di pubblicazione. Se hai un'idea per un articolo, puoi crearlo (tramite GitHub Gist o Clap). Una volta fatto, archiviare un problema su GitHub che fa riferimento al tuo Gist / Clap avvia la conversazione sul tuo particolare articolo. Infine, prendi l'articolo dal Gist in un post potenziato da Jekyll. Ciò comporta alcuni semplici comandi del terminale, un commit e una richiesta di pull per risolvere il problema che hai archiviato su quell'articolo. Quindi, ecco i passaggi di base.

  1. Scrivi la tua brillante idea in GitHub Gist o Clap
  2. Fai riferimento a questa idea in un problema nella pagina dei problemi di a11yproject.com
  3. Discutere l'idea con gli altri tramite il problema GitHub
  4. Perfeziona il contenuto e crea un post tramite Jekyll rake post title = "il tuo titolo" nella tua copia locale del repository
  5. Correre server di rake e visita http: // localhost: 4000 per dare un'occhiata al tuo post (e al resto del sito)
  6. Correre controllo del rake per assicurarti di non rompere nulla. (Se lo hai fatto, questo è un argomento per la discussione dei commenti.)
  7. Se tutto è a posto, spingi verso l'alto e invia una richiesta di pull che faccia riferimento al commit del tuo post; assicurati di includere "Correzioni n. 42" nel tuo messaggio di commit se il tuo problema era # 42.

Se non hai ancora intenzione di smettere di fumare sulle tue abilità di Jekyll o Git / GitHub, puoi anche chiedere aiuto per far passare il tuo post in un commit. Commenta il problema associato al post. Inoltre, assicurati di dare un'occhiata a questo screencast sul nostro sito fratelli Tuts +, NetTuts.

Synergy

Nel caso in cui non l'avessi notato, tutto questo processo di creazione di contenuti ruota attorno a discussioni conversazione / thread di contenuti su GitHub. Questo fornisce un modo per combinare naturalmente una conversazione con un'azione associata. Questa è un'integrazione critica per qualsiasi tipo di collaborazione.


Più dadi e bulloni

Il sito si basa su una porta Sass / Compass di Twitter Bootstrap, quindi non c'è nulla di sorprendentemente innovativo sul design del sito. Tuttavia, è aperto anche a contributi e collaborazioni; I problemi archiviati su GitHub non sono solo per collaborare alle idee post, ma anche per far notare inesattezze, inaccessibilità e bug. Anche al di là di questo, chiunque è invitato a presentare problemi e attirare richieste per migliorare il sito in qualsiasi modo; pensa che il sito potrebbe usare una nuova pelle?

  1. Invia un problema descrittivo
  2. Assegnati
  3. Costruisci la pelle
  4. Invia una richiesta di pull allegata al problema
  5. Diventa famoso *

* Ottenere famosi non è correlato all'invio della richiesta di pull.


SASS + solo bussola

Il Progetto Accessibilità è costruito esclusivamente utilizzando SASS e Compass; se si desidera inviare modifiche di progettazione, è necessario farlo utilizzando SASS e Compass.

Mentre alcuni potrebbero considerarlo una limitazione, serve a uno scopo. Innanzitutto, rende il codice base meno complesso; se il progetto ha provato a supportare vanilla CSS, LESS e SASS, il risultato avrebbe comportato grossi problemi di dipendenza. Richiederebbe inoltre ai contributori di aggiornare sia i file LESS che quelli SASS, cosa che è molto meno probabile che incoraggi il coinvolgimento. Infine, coloro che sono spinti a contribuire e hanno anche le capacità o il contenuto di qualità per contribuire potranno già conoscere il SASS o avranno un modo per impararlo. Mentre questo sembra esclusivo, dobbiamo anche considerare che questo, ad un certo punto, è il caso di qualsiasi tecnologia; coloro che non sanno (e non sono disposti a imparare) come integrare il loro JavaScript con jQuery semplicemente non possono scrivere plugin jQuery.


Conclusione

Open-source è uno strumento incredibilmente potente. Usare piattaforme come GitHub e strumenti come Jekyll fanno splendere l'open source. La comunicazione integrata con i documenti di lavoro è essenziale per collaborare in modo efficiente, specialmente se il lavoro svolto è parallelo ad altri che svolgono un lavoro simile.

Il Progetto sull'accessibilità è un ottimo esempio di tutti questi principi che si concretizzano. Con circa quaranta contributori di alto livello fino ad oggi, è una dimostrazione del potere dell'open-source e della volontà delle persone di collaborare per fare qualcosa di grande. Il progetto comporta molto poco o nessun sovraccarico per questo sito esistere.

?