diff --git a/fpdfsdk/pwl/BUILD.gn b/fpdfsdk/pwl/BUILD.gn
index ea26c13..ea2ce94 100644
--- a/fpdfsdk/pwl/BUILD.gn
+++ b/fpdfsdk/pwl/BUILD.gn
@@ -50,6 +50,7 @@
   sources = [
     "cpwl_combo_box_embeddertest.cpp",
     "cpwl_edit_embeddertest.cpp",
+    "cpwl_special_button_embeddertest.cpp",
   ]
   deps = [
     ":pwl",
diff --git a/fpdfsdk/pwl/cpwl_special_button_embeddertest.cpp b/fpdfsdk/pwl/cpwl_special_button_embeddertest.cpp
new file mode 100644
index 0000000..bd6eea0
--- /dev/null
+++ b/fpdfsdk/pwl/cpwl_special_button_embeddertest.cpp
@@ -0,0 +1,147 @@
+// Copyright 2020 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "fpdfsdk/cpdfsdk_annot.h"
+#include "fpdfsdk/cpdfsdk_annotiterator.h"
+#include "fpdfsdk/cpdfsdk_formfillenvironment.h"
+#include "fpdfsdk/cpdfsdk_helpers.h"
+#include "fpdfsdk/formfiller/cffl_formfiller.h"
+#include "fpdfsdk/pwl/cpwl_special_button.h"
+#include "fpdfsdk/pwl/cpwl_wnd.h"
+#include "testing/embedder_test.h"
+
+class CPWLSpecialButtonEmbedderTest : public EmbedderTest {
+ protected:
+  void SetUp() override {
+    EmbedderTest::SetUp();
+    CreateAndInitializeFormPDF();
+  }
+
+  void TearDown() override {
+    UnloadPage(page_);
+    EmbedderTest::TearDown();
+  }
+
+  void CreateAndInitializeFormPDF() {
+    ASSERT_TRUE(OpenDocument("click_form.pdf"));
+
+    page_ = LoadPage(0);
+    ASSERT_TRUE(page_);
+
+    formfill_env_ = CPDFSDKFormFillEnvironmentFromFPDFFormHandle(form_handle());
+    CPDFSDK_AnnotIterator it(formfill_env_->GetPageView(0),
+                             CPDF_Annot::Subtype::WIDGET);
+
+    // Read only check box.
+    annot_readonly_checkbox_ = it.GetFirstAnnot();
+    ASSERT_TRUE(annot_readonly_checkbox_);
+    ASSERT_EQ(CPDF_Annot::Subtype::WIDGET,
+              annot_readonly_checkbox_->GetAnnotSubtype());
+
+    // Check box.
+    annot_checkbox_ = it.GetNextAnnot(annot_readonly_checkbox_);
+    ASSERT_TRUE(annot_checkbox_);
+    ASSERT_EQ(CPDF_Annot::Subtype::WIDGET, annot_checkbox_->GetAnnotSubtype());
+
+    // Read only radio button.
+    annot_readonly_radiobutton_ = it.GetNextAnnot(annot_checkbox_);
+    ASSERT_TRUE(annot_readonly_radiobutton_);
+    ASSERT_EQ(CPDF_Annot::Subtype::WIDGET,
+              annot_readonly_radiobutton_->GetAnnotSubtype());
+
+    // Tabbing three times from read only radio button to unselected normal
+    // radio button.
+    annot_radiobutton_ = annot_readonly_radiobutton_;
+    ASSERT_TRUE(annot_radiobutton_);
+    for (int i = 0; i < 3; i++) {
+      annot_radiobutton_ = it.GetNextAnnot(annot_radiobutton_);
+      ASSERT_TRUE(annot_radiobutton_);
+    }
+
+    ASSERT_EQ(CPDF_Annot::Subtype::WIDGET,
+              annot_radiobutton_->GetAnnotSubtype());
+  }
+
+  void FormFillerAndWindowSetup(CPDFSDK_Annot* annot) {
+    CFFL_InteractiveFormFiller* interactive_formfiller =
+        formfill_env_->GetInteractiveFormFiller();
+    {
+      ObservedPtr<CPDFSDK_Annot> observed(annot);
+      EXPECT_TRUE(interactive_formfiller->OnSetFocus(&observed, 0));
+    }
+
+    form_filler_ = interactive_formfiller->GetFormFillerForTesting(annot);
+    ASSERT_TRUE(form_filler_);
+
+    window_ = form_filler_->GetPWLWindow(formfill_env_->GetPageView(0), true);
+    ASSERT_TRUE(window_);
+  }
+
+  CPDFSDK_Annot* GetCPDFSDKAnnotCheckBox() const { return annot_checkbox_; }
+  CPDFSDK_Annot* GetCPDFSDKAnnotReadOnlyCheckBox() const {
+    return annot_readonly_checkbox_;
+  }
+  CPDFSDK_Annot* GetCPDFSDKAnnotRadioButton() const {
+    return annot_radiobutton_;
+  }
+  CPDFSDK_Annot* GetCPDFSDKAnnotReadOnlyRadioButton() const {
+    return annot_readonly_radiobutton_;
+  }
+  CPDFSDK_FormFillEnvironment* GetCPDFSDKFormFillEnv() const {
+    return formfill_env_;
+  }
+  CPWL_Wnd* GetWindow() const { return window_; }
+
+ private:
+  FPDF_PAGE page_;
+  CFFL_FormFiller* form_filler_;
+  CPDFSDK_Annot* annot_checkbox_;
+  CPDFSDK_Annot* annot_readonly_checkbox_;
+  CPDFSDK_Annot* annot_radiobutton_;
+  CPDFSDK_Annot* annot_readonly_radiobutton_;
+  CPDFSDK_FormFillEnvironment* formfill_env_;
+  CPWL_Wnd* window_;
+};
+
+TEST_F(CPWLSpecialButtonEmbedderTest, EnterOnReadOnlyCheckBox) {
+  FormFillerAndWindowSetup(GetCPDFSDKAnnotReadOnlyCheckBox());
+  CPWL_CheckBox* check_box = static_cast<CPWL_CheckBox*>(GetWindow());
+  EXPECT_TRUE(GetCPDFSDKFormFillEnv()->GetInteractiveFormFiller()->OnChar(
+      GetCPDFSDKAnnotReadOnlyCheckBox(), '\r', 0));
+  // The check box is checked by default. Since it is a read only checkbox,
+  // clicking Enter shouldn't change its state.
+  // TODO(http://crbug.com/pdfium/1431) : Change this to EXPECT_TRUE
+  // as part of the fix.
+  EXPECT_FALSE(check_box->IsChecked());
+}
+
+TEST_F(CPWLSpecialButtonEmbedderTest, EnterOnCheckBox) {
+  FormFillerAndWindowSetup(GetCPDFSDKAnnotCheckBox());
+  CPWL_CheckBox* check_box = static_cast<CPWL_CheckBox*>(GetWindow());
+  EXPECT_TRUE(GetCPDFSDKFormFillEnv()->GetInteractiveFormFiller()->OnChar(
+      GetCPDFSDKAnnotCheckBox(), '\r', 0));
+  EXPECT_TRUE(check_box->IsChecked());
+
+  EXPECT_TRUE(GetCPDFSDKFormFillEnv()->GetInteractiveFormFiller()->OnChar(
+      GetCPDFSDKAnnotCheckBox(), '\r', 0));
+  EXPECT_FALSE(check_box->IsChecked());
+}
+
+TEST_F(CPWLSpecialButtonEmbedderTest, EnterOnReadOnlyRadioButton) {
+  FormFillerAndWindowSetup(GetCPDFSDKAnnotReadOnlyRadioButton());
+  CPWL_RadioButton* radio_button = static_cast<CPWL_RadioButton*>(GetWindow());
+  EXPECT_TRUE(GetCPDFSDKFormFillEnv()->GetInteractiveFormFiller()->OnChar(
+      GetCPDFSDKAnnotReadOnlyRadioButton(), '\r', 0));
+  // TODO(http://crbug.com/pdfium/1431) : Change this to EXPECT_FALSE
+  // as part of the fix.
+  EXPECT_TRUE(radio_button->IsChecked());
+}
+
+TEST_F(CPWLSpecialButtonEmbedderTest, EnterOnRadioButton) {
+  FormFillerAndWindowSetup(GetCPDFSDKAnnotRadioButton());
+  CPWL_RadioButton* radio_button = static_cast<CPWL_RadioButton*>(GetWindow());
+  EXPECT_TRUE(GetCPDFSDKFormFillEnv()->GetInteractiveFormFiller()->OnChar(
+      GetCPDFSDKAnnotRadioButton(), '\r', 0));
+  EXPECT_TRUE(radio_button->IsChecked());
+}
diff --git a/testing/resources/pixel/checkbox_radiobutton.evt b/testing/resources/pixel/checkbox_radiobutton.evt
new file mode 100644
index 0000000..6742beb
--- /dev/null
+++ b/testing/resources/pixel/checkbox_radiobutton.evt
@@ -0,0 +1,11 @@
+# Check the checkbox
+mousemove,145,220
+mousedown,left,145,220
+mouseup,left,145,220
+
+# Tab to radio button from checkbox
+keycode,9
+keycode,9
+
+# Press Enter to select radio button
+charcode,13
\ No newline at end of file
diff --git a/testing/resources/pixel/checkbox_radiobutton.in b/testing/resources/pixel/checkbox_radiobutton.in
new file mode 100644
index 0000000..59d73a2
--- /dev/null
+++ b/testing/resources/pixel/checkbox_radiobutton.in
@@ -0,0 +1,199 @@
+{{header}}
+{{object 1 0}} <<
+  /Type /Catalog
+  /Pages 2 0 R
+  /AcroForm <<
+    /Fields [5 0 R 6 0 R 7 0 R 9 0 R]
+  >>
+>>
+endobj
+{{object 2 0}} <<
+  /Type /Pages
+  /Count 1
+  /Kids [3 0 R]
+>>
+endobj
+{{object 3 0}} <<
+  /Type /Page
+  /Parent 2 0 R
+  /MediaBox [0 0 300 300]
+  /Contents 4 0 R
+  /Annots [5 0 R 6 0 R 8 0 R 10 0 R]
+>>
+endobj
+{{object 4 0}} <<
+  {{streamlen}}
+>>
+stream
+q
+q
+1 w
+1 0 1 RG
+1 .752941 .796078 rg
+n 135.5 250.5 19 19 re B*
+Q
+q
+2 w
+.1 .1 .1 RG
+.8 .843 1 rg
+n 136 211 18 18 re B*
+Q
+q
+2 w
+0 .501961 0 RG
+0 0 1 rg
+n
+104 110 m
+104 114.9706 99.97056 119 95 119 c
+90.02944 119 86 114.9706 86 110 c
+86 105.0294 90.02944 101 95 101 c
+99.97056 101 104 105.0294 104 110 c
+B*
+Q
+q
+2 w
+0 .501961 0 RG
+0 0 1 rg
+n
+104 60 m
+104 64.97056 99.97056 69 95 69 c
+90.02944 69 86 64.97056 86 60 c
+86 55.02944 90.02944 51 95 51 c
+99.97056 51 104 55.02944 104 60 c
+B*
+Q
+Q
+endstream
+endobj
+{{object 5 0}} <<
+  /Type /Annot
+  /Subtype /Widget
+  /FT /Btn
+  /Ff 1
+  /Rect [135 250 155 270]
+  /T (readOnlyCheckbox)
+  /AP <<
+    /N <<
+      /Yes 11 0 R
+    >>
+  >>
+  /AS /Off
+>>
+endobj
+{{object 6 0}} <<
+  /Type /Annot
+  /Subtype /Widget
+  /FT /Btn
+  /Ff 2
+  /Rect [135 210 155 230]
+  /T (checkbox)
+  /AP <<
+    /N <<
+      /Yes 11 0 R
+    >>
+  >>
+  /AS /Off
+>>
+endobj
+{{object 7 0}} <<
+  /FT /Btn
+  /Ff 49153
+  /T (readOnlyRadioButton)
+  /Kids [8 0 R]
+>>
+endobj
+{{object 8 0}} <<
+  /Type /Annot
+  /Subtype /Widget
+  /FT /Btn
+  /Parent 7 0 R
+  /Rect [85 100 105 120]
+  /AP <<
+    /N <<
+      /value1 12 0 R
+    >>
+  >>
+  /AS /Off
+>>
+endobj
+{{object 9 0}} <<
+  /FT /Btn
+  /Ff 49154
+  /T (radioButton)
+  /Kids [10 0 R]
+>>
+endobj
+{{object 10 0}} <<
+  /Type /Annot
+  /Subtype /Widget
+  /FT /Btn
+  /Parent 9 0 R
+  /Rect [85 50 105 70]
+  /AP <<
+    /N <<
+      /value1 12 0 R
+    >>
+  >>
+  /AS /Off
+>>
+endobj
+{{object 11 0}} <<
+  /Type /XObject
+  /Subtype /Form
+  /FormType 1
+  /BBox [0 0 20 20]
+  {{streamlen}}
+>>
+stream
+q
+.1 .1 .1 rg .1 .1 .1 RG
+17.2 15.95145 m
+11.20694 10 l
+17.2 4.027746 l
+15.97225 2.8 l
+10 8.793064 l
+4.027746 2.8 l
+2.8 4.027746 l
+8.813873 10 l
+2.8 15.97225 l
+4.027746 17.2 l
+10 11.20694 l
+15.97225 17.2 l
+17.2 15.95145 l
+h
+f
+Q
+endstream
+endobj
+{{object 12 0}} <<
+  /Type /XObject
+  /Subtype /Form
+  /FormType 1
+  /BBox [0 0 20 20]
+  {{streamlen}}
+>>
+stream
+q
+1 .752941 .796078 rg 1 .752941 .796078 RG
+17.2 15.95145 m
+11.20694 10 l
+17.2 4.027746 l
+15.97225 2.8 l
+10 8.793064 l
+4.027746 2.8 l
+2.8 4.027746 l
+8.813873 10 l
+2.8 15.97225 l
+4.027746 17.2 l
+10 11.20694 l
+15.97225 17.2 l
+17.2 15.95145 l
+h
+f
+Q
+endstream
+endobj
+{{xref}}
+{{trailer}}
+{{startxref}}
+%%EOF
diff --git a/testing/resources/pixel/checkbox_radiobutton_expected.pdf.0.png b/testing/resources/pixel/checkbox_radiobutton_expected.pdf.0.png
new file mode 100644
index 0000000..8baabb7
--- /dev/null
+++ b/testing/resources/pixel/checkbox_radiobutton_expected.pdf.0.png
Binary files differ
