diff --git a/setup.py b/setup.py
index 527a956..77301e0 100644
--- a/setup.py
+++ b/setup.py
@@ -8,7 +8,7 @@ EXTRAS_REQUIRE = {
     "docs": [
         "marshmallow>=3.0.0",
         "pyyaml==5.4.1",
-        "sphinx==4.0.2",
+        "sphinx==4.0.3",
         "sphinx-issues==1.2.0",
         "sphinx-rtd-theme==0.5.2",
     ],
diff --git a/src/apispec/ext/marshmallow/field_converter.py b/src/apispec/ext/marshmallow/field_converter.py
index c1304a9..7db713a 100644
--- a/src/apispec/ext/marshmallow/field_converter.py
+++ b/src/apispec/ext/marshmallow/field_converter.py
@@ -280,7 +280,7 @@ class FieldConverterMixin:
             elif self.openapi_version.minor < 1:
                 attributes["nullable"] = True
             else:
-                attributes["type"] = make_type_list(ret.get("type")) + ["'null'"]
+                attributes["type"] = [*make_type_list(ret.get("type")), "null"]
         return attributes
 
     def field2range(self, field, ret):

diff --git a/tests/test_ext_marshmallow_field.py b/tests/test_ext_marshmallow_field.py
index 04f70f1..3569e04 100644
--- a/tests/test_ext_marshmallow_field.py
+++ b/tests/test_ext_marshmallow_field.py
@@ -173,7 +173,7 @@ def test_field_with_allow_none(spec_fixture):
         assert res["nullable"] is True
     else:
         assert "nullable" not in res
-        assert res["type"] == ["string", "'null'"]
+        assert res["type"] == ["string", "null"]
 
 
 def test_field_with_dump_only(spec_fixture):
@@ -211,7 +211,7 @@ def test_field_with_range_string_type(spec_fixture, field):
 
 @pytest.mark.parametrize("spec_fixture", ("3.1.0",), indirect=True)
 def test_field_with_range_type_list_with_number(spec_fixture):
-    @spec_fixture.openapi.map_to_openapi_type(["integer", "'null'"], None)
+    @spec_fixture.openapi.map_to_openapi_type(["integer", "null"], None)
     class NullableInteger(fields.Field):
         """Nullable integer"""
 
@@ -219,12 +219,12 @@ def test_field_with_range_type_list_with_number(spec_fixture):
     res = spec_fixture.openapi.field2property(field)
     assert res["minimum"] == 1
     assert res["maximum"] == 10
-    assert res["type"] == ["integer", "'null'"]
+    assert res["type"] == ["integer", "null"]
 
 
 @pytest.mark.parametrize("spec_fixture", ("3.1.0",), indirect=True)
 def test_field_with_range_type_list_without_number(spec_fixture):
-    @spec_fixture.openapi.map_to_openapi_type(["string", "'null'"], None)
+    @spec_fixture.openapi.map_to_openapi_type(["string", "null"], None)
     class NullableInteger(fields.Field):
         """Nullable integer"""
 
@@ -232,7 +232,7 @@ def test_field_with_range_type_list_without_number(spec_fixture):
     res = spec_fixture.openapi.field2property(field)
     assert res["x-minimum"] == 1
     assert res["x-maximum"] == 10
-    assert res["type"] == ["string", "'null'"]
+    assert res["type"] == ["string", "null"]
 
 
 def test_field_with_str_regex(spec_fixture):

Nullable in OAS 3.1 rendered as "'null'" string instead of "null"
Nullable fields should be rendered as `"type": ["fieldType", "null"]`, not `["fieldType", "'null'"]`.

The field converter currently includes quotes around `null` _in the literal string value_, see https://github.com/marshmallow-code/apispec/blob/5cf763e04df42afddc2480991c878da928558417/src/apispec/ext/marshmallow/field_converter.py#L283

which results in JSON like this:

```json
          "created_at": {
            "type": [
              "string",
              "'null'"
            ],
            "format": "date-time",
            "readOnly": true
          },
```

or as YAML:

```yaml
       created_at:
          type:
            - string
            - '''null'''
          format: date-time
          readOnly: true
```

While the type string should be a string (and not `None` in Python, `null` in JSON or YAML), the extra quotes there are an error.

To fix, please drop the extra quotes in the value:

```python
                attributes["type"] = make_type_list(ret.get("type")) + ["null"] 
```

Also see 
- [Understanding JSON Schema: null](https://json-schema.org/understanding-json-schema/reference/null.html)
- this specific [valid specification test](https://github.com/OAI/OpenAPI-Specification/blob/54edcf039c9854dcbc4feac1b1990c21972f3ca5/tests/v3.1/pass/mega.yaml#L45) in the OpenAPI specification repository.
tests/test_ext_marshmallow_field.py::test_field_with_allow_none[3.1.0]
tests/test_ext_marshmallow_field.py::test_field2choices_preserving_order[2.0] tests/test_ext_marshmallow_field.py::test_field2choices_preserving_order[3.0.0] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-Integer-integer] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-Number-number] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-Float-number] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-String-string0] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-String-string1] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-Boolean-boolean0] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-Boolean-boolean1] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-UUID-string] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-DateTime-string] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-Date-string] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-Time-string] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-TimeDelta-integer] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-Email-string] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-Url-string] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-CustomStringField-string] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-CustomIntegerField-integer] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-Integer-integer] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-Number-number] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-Float-number] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-String-string0] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-String-string1] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-Boolean-boolean0] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-Boolean-boolean1] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-UUID-string] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-DateTime-string] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-Date-string] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-Time-string] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-TimeDelta-integer] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-Email-string] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-Url-string] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-CustomStringField-string] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-CustomIntegerField-integer] tests/test_ext_marshmallow_field.py::test_field2property_no_type_[2.0-Field] tests/test_ext_marshmallow_field.py::test_field2property_no_type_[2.0-Raw] tests/test_ext_marshmallow_field.py::test_field2property_no_type_[3.0.0-Field] tests/test_ext_marshmallow_field.py::test_field2property_no_type_[3.0.0-Raw] tests/test_ext_marshmallow_field.py::test_formatted_field_translates_to_array[2.0-List] tests/test_ext_marshmallow_field.py::test_formatted_field_translates_to_array[2.0-CustomList] tests/test_ext_marshmallow_field.py::test_formatted_field_translates_to_array[3.0.0-List] tests/test_ext_marshmallow_field.py::test_formatted_field_translates_to_array[3.0.0-CustomList] tests/test_ext_marshmallow_field.py::test_field2property_formats[2.0-UUID-uuid] tests/test_ext_marshmallow_field.py::test_field2property_formats[2.0-DateTime-date-time] tests/test_ext_marshmallow_field.py::test_field2property_formats[2.0-Date-date] tests/test_ext_marshmallow_field.py::test_field2property_formats[2.0-Email-email] tests/test_ext_marshmallow_field.py::test_field2property_formats[2.0-Url-url] tests/test_ext_marshmallow_field.py::test_field2property_formats[3.0.0-UUID-uuid] tests/test_ext_marshmallow_field.py::test_field2property_formats[3.0.0-DateTime-date-time] tests/test_ext_marshmallow_field.py::test_field2property_formats[3.0.0-Date-date] tests/test_ext_marshmallow_field.py::test_field2property_formats[3.0.0-Email-email] tests/test_ext_marshmallow_field.py::test_field2property_formats[3.0.0-Url-url] tests/test_ext_marshmallow_field.py::test_field_with_description[2.0] tests/test_ext_marshmallow_field.py::test_field_with_description[3.0.0] tests/test_ext_marshmallow_field.py::test_field_with_missing[2.0] tests/test_ext_marshmallow_field.py::test_field_with_missing[3.0.0] tests/test_ext_marshmallow_field.py::test_boolean_field_with_false_missing[2.0] tests/test_ext_marshmallow_field.py::test_boolean_field_with_false_missing[3.0.0] tests/test_ext_marshmallow_field.py::test_datetime_field_with_missing[2.0] tests/test_ext_marshmallow_field.py::test_datetime_field_with_missing[3.0.0] tests/test_ext_marshmallow_field.py::test_field_with_missing_callable[2.0] tests/test_ext_marshmallow_field.py::test_field_with_missing_callable[3.0.0] tests/test_ext_marshmallow_field.py::test_field_with_doc_default[2.0] tests/test_ext_marshmallow_field.py::test_field_with_doc_default[3.0.0] tests/test_ext_marshmallow_field.py::test_field_with_doc_default_and_missing[2.0] tests/test_ext_marshmallow_field.py::test_field_with_doc_default_and_missing[3.0.0] tests/test_ext_marshmallow_field.py::test_field_with_choices[2.0] tests/test_ext_marshmallow_field.py::test_field_with_choices[3.0.0] tests/test_ext_marshmallow_field.py::test_field_with_equal[2.0] tests/test_ext_marshmallow_field.py::test_field_with_equal[3.0.0] tests/test_ext_marshmallow_field.py::test_only_allows_valid_properties_in_metadata[2.0] tests/test_ext_marshmallow_field.py::test_only_allows_valid_properties_in_metadata[3.0.0] tests/test_ext_marshmallow_field.py::test_field_with_choices_multiple[2.0] tests/test_ext_marshmallow_field.py::test_field_with_choices_multiple[3.0.0] tests/test_ext_marshmallow_field.py::test_field_with_additional_metadata[2.0] tests/test_ext_marshmallow_field.py::test_field_with_additional_metadata[3.0.0] tests/test_ext_marshmallow_field.py::test_field_with_allow_none[2.0] tests/test_ext_marshmallow_field.py::test_field_with_allow_none[3.0.0] tests/test_ext_marshmallow_field.py::test_field_with_dump_only[2.0] tests/test_ext_marshmallow_field.py::test_field_with_dump_only[3.0.0] tests/test_ext_marshmallow_field.py::test_field_with_load_only[2.0] tests/test_ext_marshmallow_field.py::test_field_with_load_only[3.0.0] tests/test_ext_marshmallow_field.py::test_field_with_load_only[3.1.0] tests/test_ext_marshmallow_field.py::test_field_with_range_no_type[2.0] tests/test_ext_marshmallow_field.py::test_field_with_range_no_type[3.0.0] tests/test_ext_marshmallow_field.py::test_field_with_range_string_type[2.0-Number] tests/test_ext_marshmallow_field.py::test_field_with_range_string_type[2.0-Integer] tests/test_ext_marshmallow_field.py::test_field_with_range_string_type[3.0.0-Number] tests/test_ext_marshmallow_field.py::test_field_with_range_string_type[3.0.0-Integer] tests/test_ext_marshmallow_field.py::test_field_with_range_type_list_with_number[3.1.0] tests/test_ext_marshmallow_field.py::test_field_with_range_type_list_without_number[3.1.0] tests/test_ext_marshmallow_field.py::test_field_with_str_regex[2.0] tests/test_ext_marshmallow_field.py::test_field_with_str_regex[3.0.0] tests/test_ext_marshmallow_field.py::test_field_with_pattern_obj_regex[2.0] tests/test_ext_marshmallow_field.py::test_field_with_pattern_obj_regex[3.0.0] tests/test_ext_marshmallow_field.py::test_field_with_no_pattern[2.0] tests/test_ext_marshmallow_field.py::test_field_with_no_pattern[3.0.0] tests/test_ext_marshmallow_field.py::test_field_with_multiple_patterns[2.0] tests/test_ext_marshmallow_field.py::test_field_with_multiple_patterns[3.0.0] tests/test_ext_marshmallow_field.py::test_field2property_nested_spec_metadatas[2.0] tests/test_ext_marshmallow_field.py::test_field2property_nested_spec_metadatas[3.0.0] tests/test_ext_marshmallow_field.py::test_field2property_nested_spec[2.0] tests/test_ext_marshmallow_field.py::test_field2property_nested_spec[3.0.0] tests/test_ext_marshmallow_field.py::test_field2property_nested_many_spec[2.0] tests/test_ext_marshmallow_field.py::test_field2property_nested_many_spec[3.0.0] tests/test_ext_marshmallow_field.py::test_field2property_nested_ref[2.0] tests/test_ext_marshmallow_field.py::test_field2property_nested_ref[3.0.0] tests/test_ext_marshmallow_field.py::test_field2property_nested_many[2.0] tests/test_ext_marshmallow_field.py::test_field2property_nested_many[3.0.0] tests/test_ext_marshmallow_field.py::test_nested_field_with_property[2.0] tests/test_ext_marshmallow_field.py::test_nested_field_with_property[3.0.0] tests/test_ext_marshmallow_field.py::TestField2PropertyPluck::test_spec[2.0] tests/test_ext_marshmallow_field.py::TestField2PropertyPluck::test_spec[3.0.0] tests/test_ext_marshmallow_field.py::TestField2PropertyPluck::test_with_property[2.0] tests/test_ext_marshmallow_field.py::TestField2PropertyPluck::test_with_property[3.0.0] tests/test_ext_marshmallow_field.py::TestField2PropertyPluck::test_metadata[2.0] tests/test_ext_marshmallow_field.py::TestField2PropertyPluck::test_metadata[3.0.0] tests/test_ext_marshmallow_field.py::TestField2PropertyPluck::test_many[2.0] tests/test_ext_marshmallow_field.py::TestField2PropertyPluck::test_many[3.0.0] tests/test_ext_marshmallow_field.py::TestField2PropertyPluck::test_many_with_property[2.0] tests/test_ext_marshmallow_field.py::TestField2PropertyPluck::test_many_with_property[3.0.0] tests/test_ext_marshmallow_field.py::test_custom_properties_for_custom_fields[2.0] tests/test_ext_marshmallow_field.py::test_custom_properties_for_custom_fields[3.0.0] tests/test_ext_marshmallow_field.py::test_field2property_with_non_string_metadata_keys[2.0] tests/test_ext_marshmallow_field.py::test_field2property_with_non_string_metadata_keys[3.0.0]