Faits: A. A._ est paraplégique depuis vingt ans. Le 4 octobre 2008, il s'est rendu seul au cinéma V._, à Genève, pour assister à la projection d'un film qui ne figurait à l'affiche d'aucune autre salle genevoise. Le bâtiment abritant le cinéma, exploité par X._ Sàrl, n'est pas adapté aux personnes en fauteuil roulant; celles-ci ne peuvent ni accéder aux salles, ni en sortir sans l'aide de tiers. A._ s'est vu refuser l'accès au cinéma en vertu de directives de sécurité internes de la société exploitante. Il s'en est plaint auprès de cette dernière, sans succès. B. Le 28 septembre 2009, A._ a ouvert action contre X._ Sàrl, concluant au paiement d'une indemnité de 5'000 fr. plus intérêts. Il considérait avoir subi une discrimination en se voyant refuser l'accès au cinéma. Dans le même acte, Integration Handicap, association venant en aide aux personnes handicapées, a demandé qu'il soit constaté que A._ avait été traité de façon discriminatoire et que l'interdiction faite par la société exploitante aux personnes avec un handicap physique d'accéder au cinéma constituait un traitement discriminatoire. Cette organisation fondait sa qualité pour agir sur l'art. 9 al. 1, 2 et 3 let. a LHand, ainsi que sur le ch. 6 de l'annexe 1 OHand. X._ Sàrl a conclu au rejet de l'action de A._ et à l'irrecevabilité de l'action d'Integration Handicap faute de qualité pour agir, subsidiairement à son rejet. Au cours de l'instruction, il a été procédé à un transport sur place. A cette occasion, A._ - qui pèse 80 kg - a fait la démonstration qu'avec l'aide de deux personnes, il pouvait entrer en fauteuil roulant - d'un poids d'environ 15 kg - dans la salle de cinéma et sortir par l'issue de secours. Par jugement du 15 septembre 2011, le Tribunal de première instance du canton de Genève a rejeté l'action de A._ et, dans la mesure où elle était recevable, celle d'Integration Handicap. A._ a déposé un recours (art. 319 CPC) alors que Integration Handicap s'est pourvue en appel (art. 308 CPC). Après avoir ordonné la division des causes, la Chambre civile de la Cour de justice du canton de Genève a rejeté le recours de A._ par arrêt du 11 mai 2012. Dans un arrêt du même jour, elle a rejeté l'appel de Integration Handicap et confirmé le jugement de première instance. C. A._ interjette un recours en matière civile et, à titre subsidiaire, un recours constitutionnel. Il conclut à la condamnation de X._ Sàrl à lui payer la somme de 5'000 fr. avec intérêts à 5% dès le 4 octobre 2008. X._ Sàrl propose le rejet des recours en tant qu'ils sont recevables. Integration Handicap a également déposé un recours en matière civile (cause 4A_367/1012). Dans l'arrêt rendu parallèlement dans cette affaire, la cour de céans nie que X._ Sàrl ait commis envers A._ une discrimination prohibée par l'art. 6 LHand.