<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>311427</bug_id>
          
          <creation_ts>2026-04-03 10:56:56 -0700</creation_ts>
          <short_desc>AX: Opendeck crashes webkitgtk with Orca running</short_desc>
          <delta_ts>2026-04-06 02:08:11 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mike Gorse">mgorse</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andresg_22</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2196632</commentid>
    <comment_count>0</comment_count>
    <who name="Mike Gorse">mgorse</who>
    <bug_when>2026-04-03 10:56:56 -0700</bug_when>
    <thetext>With the latest code from the webkitglib/2.52 branch, starting opendeck and pressing tab + shift tab a few times gives this crash:

(gdb) bt full
#0  WTFCrash () at ../../../Source/WTF/wtf/Assertions.cpp:380
#1  0x00007f942eeae77e in WTF::CrashOnOverflow::crash () at WTF/Headers/wtf/CheckedArithmetic.h:110
#2  0x00007f942eeae769 in WTF::CrashOnOverflow::overflowed () at WTF/Headers/wtf/CheckedArithmetic.h:103
#3  0x00007f94349e5c78 in WTF::Vector&lt;unsigned int, 128ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;::at (this=0x7ffd4ad67140, i=119) at WTF/Headers/wtf/Vector.h:746
#4  0x00007f94349e5191 in WTF::Vector&lt;unsigned int, 128ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;::operator[] (this=0x7ffd4ad67140, i=119) at WTF/Headers/wtf/Vector.h:751
#5  0x00007f94349dd6b5 in WebCore::UTF16OffsetToUTF8 (mapping=WTF::Vector of length 10, capacity 128 = {...}, offset=119) at ../../../Source/WebCore/accessibility/atspi/AccessibilityObjectTextAtspi.cpp:257
#6  0x00007f94349dedfd in WebCore::AccessibilityObjectAtspi::textAtOffset
    (this=0x7f941885aa00, offset=1, granularity=WebCore::AccessibilityObjectAtspi::TextGranularity::LineStart, startOffset=@0x7ffd4ad675d4: 0, endOffset=@0x7ffd4ad675d0: 0)
    at ../../../Source/WebCore/accessibility/atspi/AccessibilityObjectTextAtspi.cpp:482
        mapping = WTF::Vector of length 10, capacity 128 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
        utf16Offset = 1
        boundaryOffset = {m_x = 119, m_y = 120}
        utf16Text = Python Exception &lt;class &apos;TypeError&apos;&gt;: can&apos;t concat str to bytes

        utf8Text = Python Exception &lt;class &apos;ValueError&apos;&gt;: chr() arg not in range(0x110000)

        length = 9
        substring = std::unique_ptr&lt;char&gt; = {get() = 0x0}
#7  0x00007f94349dbd0c in operator() (__closure=0x0, methodName=0x7b4a620 &quot;GetStringAtOffset&quot;, parameters=0x7864dd0, invocation=0x7c94900, userData=0x7f941885aa00)
    at ../../../Source/WebCore/accessibility/atspi/AccessibilityObjectTextAtspi.cpp:96
        end = 0
        offset = 1
        granularityType = 3
        start = 0
        text = Python Exception &lt;class &apos;ValueError&apos;&gt;: chr() arg not in range(0x110000)
        atspiObject = {static isRef = &lt;optimized out&gt;, m_ptr = 0x7f941885aa00}

I think that offset values are being calculated incorrectly for the given text, eventually leading to an out-of-range vector look-up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2196633</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2026-04-03 10:57:02 -0700</bug_when>
    <thetext>&lt;rdar://problem/174025357&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2197190</commentid>
    <comment_count>2</comment_count>
    <who name="Mike Gorse">mgorse</who>
    <bug_when>2026-04-06 01:56:14 -0700</bug_when>
    <thetext>I just updated opendeck to 2.11.0, which has several accessibility improvements, and now I am no longer to reproduce the crash that I was seeing before. I&apos;ll need to track this down better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2197193</commentid>
    <comment_count>3</comment_count>
    <who name="Mike Gorse">mgorse</who>
    <bug_when>2026-04-06 02:08:11 -0700</bug_when>
    <thetext>Actually, looking at this more, I do still encounter the crash using 2.11.0. If I press tab a few times, then focusing the control past &quot;search actions&quot; triggers it. Sorry for the noise.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>