SlideShare ist ein Scribd-Unternehmen logo
1 von 15
アクセシブルな決済サイトの試作
with Stripe + Python + NVDA
西本 卓也 nishimotz@gmail.com / @24motz
2018-01-12
1
pcn-hiroshima.connpass.com
2
第3回 1月27日(土曜)
会場 fabbit 広島駅前
すごい広島 with Python
• 2017年4月から毎月の最後の水曜日の夜に開催
• 2017年3月 Python Boot Camp in 広島
• 2016年 / 2015年は PyCon mini Hiroshima を開催
• Python に興味がある人が集まって情報交換
• Slack PyConJP Fellow #hiroshima
• http://pyconjp-fellow.herokuapp.com/
• 今年は PyCon mini Hiroshima をやりたい
3
NVDA / NVDA日本語チーム
4
アクセシブルな決済サイト
• 要求
• スクリーンリーダー利用者がちゃんと使える
• 具体的には
• iOS : Safari + VoiceOver
• Windows : Firefox + NVDA
• 特定の環境向けのワークアラウンドはしない
• アクセシビリティの Web 標準に準拠
5
決済プラットフォームの評価
• テストモード
• ユーザー環境と同じ条件の検証が不可欠
• 決済を実行してみないと試せない、では困る
• UIやライブラリの検証
• サイトに簡単に組み込める=問題があっても自力で直せない
• 最初はよかったのに突然悪くなることもあり得る
• 外部ライブラリを動的に読み込んでいる場合
• 場合によってはあきらめて自前で作る
6
Stripe Checkout
• https://stripe.com/docs/checkout/tutorial
7
Python + Flask
8
Tabキーでフォーカス移動すると
• モーダルダイアログの外にも行ける(実行もできる)
• ダイアログのクローズにフォーカスを移動できない
9
決済情報を保存する
10
コーディングWebアクセシビリティ
• 6-3「ダイアログ」注意点
• モーダルダイアログが開いている間は
その他の要素を操作させない
• ブラウザのアドレスバーなどに
フォーカスを移動できるように
• ダイアログを閉じるときに、
そのダイアログを呼び出した要素に
フォーカスを戻す
11
Stripe Elements (v3)
• https://stripe.com/docs/stripe-js
• https://stripe.com/elements
12
試作サイト
• https://stripe.com/docs/stripe-js/elements/quickstart
13
<form action="/pay" method="post" id="payment-form">
<div class="form-row">
<label for="card-element">クレジットカード情報を入力してください</label>
<div id="card-element"></div>
<div id="card-errors" role="alert"></div>
</div>
<button type="submit">送信する</button>
<input type="hidden" name="stripeToken" id="stripeToken" value="" />
</form>
クライアント / サーバーサイド
14
var form = document.getElementById('payment-form');
form.addEventListener('submit', function(event) {
event.preventDefault();
stripe.createToken(card).then(function(result) {
if (result.error) {
// handle error
} else {
document.getElementById('stripeToken').value = result.token.id;
form.submit();
}
});
});
@app.route('/pay', methods=['POST'])
def pay():
# handle login / logout / email
stripeToken = request.form['stripeToken']
amount = 1000
customer = stripe.Customer.create(
email=email,
source=stripeToken
)
charge = stripe.Charge.create(
customer=customer.id,
amount=amount,
currency='jpy',
description='Flask Charge'
)
return render_template('pay.html', ...)
まとめ
• Stripe looks good to me
• TODO
• VoiceOver 検証
15

Weitere ähnliche Inhalte

Was ist angesagt?

[コデアル株式会社] Ruby on rails 開発環境設定勉強会(株式会社シンクスマイル主催)
[コデアル株式会社] Ruby on rails 開発環境設定勉強会(株式会社シンクスマイル主催)[コデアル株式会社] Ruby on rails 開発環境設定勉強会(株式会社シンクスマイル主催)
[コデアル株式会社] Ruby on rails 開発環境設定勉強会(株式会社シンクスマイル主催)codeal
 
RubyとRのおいしい関係
RubyとRのおいしい関係RubyとRのおいしい関係
RubyとRのおいしい関係sady_nitro
 
2016 01-23アジャイル札幌
2016 01-23アジャイル札幌2016 01-23アジャイル札幌
2016 01-23アジャイル札幌pandeiro245
 
しょぼいカレンダーからアニメデータベースを作る
しょぼいカレンダーからアニメデータベースを作るしょぼいカレンダーからアニメデータベースを作る
しょぼいカレンダーからアニメデータベースを作るMisao X
 
遅刻可視化ツールの紹介
遅刻可視化ツールの紹介遅刻可視化ツールの紹介
遅刻可視化ツールの紹介mizdra
 
AsssetStoreに頼ってVRコースターを作ってみる
AsssetStoreに頼ってVRコースターを作ってみるAsssetStoreに頼ってVRコースターを作ってみる
AsssetStoreに頼ってVRコースターを作ってみるYo Takezawa
 
田舎暮らし流エンジニアスキルアップ術
田舎暮らし流エンジニアスキルアップ術田舎暮らし流エンジニアスキルアップ術
田舎暮らし流エンジニアスキルアップ術Tomoe Sawai
 
クラウドネイティブ時代のアプリケーション運用をもっと簡単に!
クラウドネイティブ時代のアプリケーション運用をもっと簡単に!クラウドネイティブ時代のアプリケーション運用をもっと簡単に!
クラウドネイティブ時代のアプリケーション運用をもっと簡単に!Yasuhiro Horiuchi
 
9 27 yebisu-tokachi-selfish_sister_city_event_vr_conference_room
9 27 yebisu-tokachi-selfish_sister_city_event_vr_conference_room9 27 yebisu-tokachi-selfish_sister_city_event_vr_conference_room
9 27 yebisu-tokachi-selfish_sister_city_event_vr_conference_roomdechidechi1
 
RubyからC#を扱う
RubyからC#を扱うRubyからC#を扱う
RubyからC#を扱う107steps
 
Hexo + Github + CircleCI + Netlifyでブログ運用
Hexo + Github + CircleCI + Netlifyでブログ運用Hexo + Github + CircleCI + Netlifyでブログ運用
Hexo + Github + CircleCI + Netlifyでブログ運用Masaya Morimoto
 

Was ist angesagt? (12)

[コデアル株式会社] Ruby on rails 開発環境設定勉強会(株式会社シンクスマイル主催)
[コデアル株式会社] Ruby on rails 開発環境設定勉強会(株式会社シンクスマイル主催)[コデアル株式会社] Ruby on rails 開発環境設定勉強会(株式会社シンクスマイル主催)
[コデアル株式会社] Ruby on rails 開発環境設定勉強会(株式会社シンクスマイル主催)
 
RubyとRのおいしい関係
RubyとRのおいしい関係RubyとRのおいしい関係
RubyとRのおいしい関係
 
2016 01-23アジャイル札幌
2016 01-23アジャイル札幌2016 01-23アジャイル札幌
2016 01-23アジャイル札幌
 
自作アプリ7月号
自作アプリ7月号自作アプリ7月号
自作アプリ7月号
 
しょぼいカレンダーからアニメデータベースを作る
しょぼいカレンダーからアニメデータベースを作るしょぼいカレンダーからアニメデータベースを作る
しょぼいカレンダーからアニメデータベースを作る
 
遅刻可視化ツールの紹介
遅刻可視化ツールの紹介遅刻可視化ツールの紹介
遅刻可視化ツールの紹介
 
AsssetStoreに頼ってVRコースターを作ってみる
AsssetStoreに頼ってVRコースターを作ってみるAsssetStoreに頼ってVRコースターを作ってみる
AsssetStoreに頼ってVRコースターを作ってみる
 
田舎暮らし流エンジニアスキルアップ術
田舎暮らし流エンジニアスキルアップ術田舎暮らし流エンジニアスキルアップ術
田舎暮らし流エンジニアスキルアップ術
 
クラウドネイティブ時代のアプリケーション運用をもっと簡単に!
クラウドネイティブ時代のアプリケーション運用をもっと簡単に!クラウドネイティブ時代のアプリケーション運用をもっと簡単に!
クラウドネイティブ時代のアプリケーション運用をもっと簡単に!
 
9 27 yebisu-tokachi-selfish_sister_city_event_vr_conference_room
9 27 yebisu-tokachi-selfish_sister_city_event_vr_conference_room9 27 yebisu-tokachi-selfish_sister_city_event_vr_conference_room
9 27 yebisu-tokachi-selfish_sister_city_event_vr_conference_room
 
RubyからC#を扱う
RubyからC#を扱うRubyからC#を扱う
RubyからC#を扱う
 
Hexo + Github + CircleCI + Netlifyでブログ運用
Hexo + Github + CircleCI + Netlifyでブログ運用Hexo + Github + CircleCI + Netlifyでブログ運用
Hexo + Github + CircleCI + Netlifyでブログ運用
 

Ähnlich wie 180112 nishimoto-stripes-v1

180224 osh-after-party-nishimoto
180224 osh-after-party-nishimoto180224 osh-after-party-nishimoto
180224 osh-after-party-nishimotoTakuya Nishimoto
 
191208 python-kansai-nishimoto
191208 python-kansai-nishimoto191208 python-kansai-nishimoto
191208 python-kansai-nishimotoTakuya Nishimoto
 
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解するTakuya Nishimoto
 
210526 Power Automate Desktop Python
210526 Power Automate Desktop Python210526 Power Automate Desktop Python
210526 Power Automate Desktop PythonTakuya Nishimoto
 
第32回信号処理シンポジウム「Raspberry PiとROSを 使ったロボットシステム」
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
第32回信号処理シンポジウム「Raspberry PiとROSを 使ったロボットシステム」Ryuichi Ueda
 
スクリーンリーダーと点字ディスプレイの話
スクリーンリーダーと点字ディスプレイの話スクリーンリーダーと点字ディスプレイの話
スクリーンリーダーと点字ディスプレイの話Takuya Nishimoto
 

Ähnlich wie 180112 nishimoto-stripes-v1 (10)

200208 osh-nishimoto-v2
200208 osh-nishimoto-v2200208 osh-nishimoto-v2
200208 osh-nishimoto-v2
 
180224 osh-after-party-nishimoto
180224 osh-after-party-nishimoto180224 osh-after-party-nishimoto
180224 osh-after-party-nishimoto
 
Nishimoto 170603-mruby
Nishimoto 170603-mrubyNishimoto 170603-mruby
Nishimoto 170603-mruby
 
MicroPython + ESP32
MicroPython + ESP32MicroPython + ESP32
MicroPython + ESP32
 
191208 python-kansai-nishimoto
191208 python-kansai-nishimoto191208 python-kansai-nishimoto
191208 python-kansai-nishimoto
 
200918 hannari-python
200918 hannari-python200918 hannari-python
200918 hannari-python
 
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する
 
210526 Power Automate Desktop Python
210526 Power Automate Desktop Python210526 Power Automate Desktop Python
210526 Power Automate Desktop Python
 
第32回信号処理シンポジウム「Raspberry PiとROSを 使ったロボットシステム」
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
第32回信号処理シンポジウム「Raspberry PiとROSを 使ったロボットシステム」
 
スクリーンリーダーと点字ディスプレイの話
スクリーンリーダーと点字ディスプレイの話スクリーンリーダーと点字ディスプレイの話
スクリーンリーダーと点字ディスプレイの話
 

Mehr von Takuya Nishimoto

221217 SwiftはPythonに似ている
221217 SwiftはPythonに似ている221217 SwiftはPythonに似ている
221217 SwiftはPythonに似ているTakuya Nishimoto
 
220427-pydata 統計・データ分析 特集
220427-pydata 統計・データ分析 特集220427-pydata 統計・データ分析 特集
220427-pydata 統計・データ分析 特集Takuya Nishimoto
 
220126 python-datalake-spark
220126 python-datalake-spark220126 python-datalake-spark
220126 python-datalake-sparkTakuya Nishimoto
 
211020 すごい広島 with OSH 2021.10
211020 すごい広島 with OSH 2021.10211020 すごい広島 with OSH 2021.10
211020 すごい広島 with OSH 2021.10Takuya Nishimoto
 
210917 オープンセミナー@広島のこれまでとこれから
210917 オープンセミナー@広島のこれまでとこれから210917 オープンセミナー@広島のこれまでとこれから
210917 オープンセミナー@広島のこれまでとこれからTakuya Nishimoto
 
210911 これから始める電子工作とMicroPython
210911 これから始める電子工作とMicroPython210911 これから始める電子工作とMicroPython
210911 これから始める電子工作とMicroPythonTakuya Nishimoto
 
191101 nvda-sightworld-nishimoto
191101 nvda-sightworld-nishimoto191101 nvda-sightworld-nishimoto
191101 nvda-sightworld-nishimotoTakuya Nishimoto
 
190916 nishimoto-nvda-pyconjp
190916 nishimoto-nvda-pyconjp190916 nishimoto-nvda-pyconjp
190916 nishimoto-nvda-pyconjpTakuya Nishimoto
 
190719 nishimoto nvda talk
190719 nishimoto nvda talk190719 nishimoto nvda talk
190719 nishimoto nvda talkTakuya Nishimoto
 

Mehr von Takuya Nishimoto (20)

221217 SwiftはPythonに似ている
221217 SwiftはPythonに似ている221217 SwiftはPythonに似ている
221217 SwiftはPythonに似ている
 
220427-pydata 統計・データ分析 特集
220427-pydata 統計・データ分析 特集220427-pydata 統計・データ分析 特集
220427-pydata 統計・データ分析 特集
 
220126 python-datalake-spark
220126 python-datalake-spark220126 python-datalake-spark
220126 python-datalake-spark
 
211020 すごい広島 with OSH 2021.10
211020 すごい広島 with OSH 2021.10211020 すごい広島 with OSH 2021.10
211020 すごい広島 with OSH 2021.10
 
210917 オープンセミナー@広島のこれまでとこれから
210917 オープンセミナー@広島のこれまでとこれから210917 オープンセミナー@広島のこれまでとこれから
210917 オープンセミナー@広島のこれまでとこれから
 
210911 これから始める電子工作とMicroPython
210911 これから始める電子工作とMicroPython210911 これから始める電子工作とMicroPython
210911 これから始める電子工作とMicroPython
 
210728 mpy
210728 mpy210728 mpy
210728 mpy
 
210630 python
210630 python210630 python
210630 python
 
210428 python
210428 python210428 python
210428 python
 
200429 python
200429 python200429 python
200429 python
 
200325 flask
200325 flask200325 flask
200325 flask
 
191101 nvda-sightworld-nishimoto
191101 nvda-sightworld-nishimoto191101 nvda-sightworld-nishimoto
191101 nvda-sightworld-nishimoto
 
191114 iotlt-nishimoto
191114 iotlt-nishimoto191114 iotlt-nishimoto
191114 iotlt-nishimoto
 
191030 anna-with-python
191030 anna-with-python191030 anna-with-python
191030 anna-with-python
 
190916 nishimoto-nvda-pyconjp
190916 nishimoto-nvda-pyconjp190916 nishimoto-nvda-pyconjp
190916 nishimoto-nvda-pyconjp
 
190925 python-windows
190925 python-windows190925 python-windows
190925 python-windows
 
190731 chalice
190731 chalice190731 chalice
190731 chalice
 
190719 nishimoto nvda talk
190719 nishimoto nvda talk190719 nishimoto nvda talk
190719 nishimoto nvda talk
 
PCN 190630 v2
PCN 190630 v2PCN 190630 v2
PCN 190630 v2
 
190516 nishimoto
190516 nishimoto190516 nishimoto
190516 nishimoto
 

Kürzlich hochgeladen

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 

Kürzlich hochgeladen (8)

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 

180112 nishimoto-stripes-v1